web-dev-qa-db-fra.com

Comment convertir une base de données MySQL en PostgreSQL?

Existe-t-il un outil en ligne de commande pour convertir la base de données MySQL en PostgreSQL? Je voudrais également savoir s'il existe un moyen de convertir la base de données en utilisant la commande normale mysqldump.

20
Mughil

as-tu essayé:

mysqldump --compatible=postgresql dbname > export.sql

puis faites cela pour échapper aux citations

sed "s/\\\'/\'\'/g" export.sql > export1.sql

peut nécessiter un peu plus de massage, alors regardez de plus près doco mysqldump.

14
Nick Kavadias

Voici quelques outils open source, qui peuvent être très utiles:

FromMySqlToPostgreSql est un outil d'accès aux fonctionnalités et très facile à utiliser.
Il mappe les types de données, migre les contraintes, les index, les PK et les FK exactement comme ils l'étaient dans votre base de données MySQL.
Sous le capot, il utilise PostgreSQL COPY, donc le transfert de données est très rapide.
FromMySqlToPostgreSql écrit en PHP (> = 5.4).

pgloader est un outil de chargement de données pour PostgreSQL, utilisant la commande COPY. Son principal avantage par rapport à la simple utilisation

COPY
\copy
NULL



7
AnatolyUss

Il existe en fait un outil de migration gratuit assez facile à utiliser, développé par EnterpriseDB lui-même. Il peut être installé via StackBuilder: Migration Toolkit

3
uygar.raf

Vous pouvez utiliser l'assistant de migration EnterpriseDB, par exemple.

Il peut facilement migrer OracleDB. Mais pour Mysql, il a certaines limitations, par exemple, il ne prend pas en charge les vues, les déclencheurs, les procédures stockées.

Pour plus d'informations, voir EDB Migration Toolkit . Pas sûr, mais il peut être possible de migrer mysql-> Oracle-> postgresql en sauvegardant vos procédures stockées (au cas où elles existent).

Grep ceci: Base de données et outils de migration SQL

3
shcherbak

J'ai récemment utilisé un outil non gratuit de DBConvert pour convertir une base de données d'accès en postgres, et j'ai trouvé que cela en valait la peine par rapport au temps que j'ai perdu à essayer de le faire de manière fiable et gratuite. La vente d'un outil similaire pour MySQL <-> postgres , que je n'ai pas utilisé, mais qui pourrait valoir la peine d'être envisagé, sauf si vous n'êtes intéressé que par les outils de ligne de commande.

Au cas où vous vous demandez que je ne suis d'aucune façon affilié à eux :-)

C'est juste pour compléter les réponses existantes, ce qui m'a aidé à trouver cette solution. J'ai utilisé FromMySqlToPostgreSql . Tout ce que vous devez faire est de télécharger et d'extraire FromMySqlToPostgreSql , de faire une copie de l'exemple de fichier de configuration, de définir les valeurs de connexion db et d'exécuter le fichier d'index avec la commande suivante:

php index.php config.xml

Simple mais efficace!

1
toing_toing

Il existe un outil open source qui fournit des fonctionnalités pour convertir une base de données MySQL en base de données Postgresql, y compris les index, les fks et les données.

https://github.com/ggarri/mysql2psql

Cet outil permet également de définir des modifications de schéma afin que vous puissiez effectuer certaines mises à niveau de votre schéma actuel lors de l'exécution.

0
Gabriel Garrido