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
.
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.
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
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
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
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!
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.