Pour les Googlers qui sont en 2015+ .
J'ai perdu toute la journée sur ce sujet et je voudrais résumer les choses.
J'ai essayé toutes les solutions décrites à este article par Alexandru Cotioras (qui est pleine de désespoir). De toutes les solutions mentionnées ici, une seule a fonctionné pour moi.
- lanyrd/mysql-postgresql-converter @ github.com (Python)
Mais cela ne suffit pas. Quand vous importerez votre nouveau fichier de conversion :
# \i ~/Downloads/mysql-postgresql-converter-master/dump.psql
PostgreSQL
vous informera sur les types désordonnés de MySQL
:
psql:/Users/jibiel/Downloads/mysql-postgresql-converter-master/dump.psql:381: ERROR: type "mediumint" does not exist
LINE 2: "group_id" mediumint(8) NOT NULL DEFAULT '0',
Vous devrez donc corriger ces types manuellement, conformément à la procédure suivante este table.
En bref, il l'est :
tinyint(2) -> smallint
mediumint(7) -> integer
# etc.
Vous pouvez utiliser regex
et tout éditeur cool pour le faire.
MacVim
+ Substitute
:
:%s!tinyint(\w\+)!smallint!g
:%s!mediumint(\w\+)!integer!g
2 votes
Comment avez-vous créé votre fichier "xxxx.dump" à partir d'Oracle. Avez-vous utilisé export ou expdp ou rdbms.get_ddl ?