Je suis en train de migrer ma base de données MySQL vers PostgreSQL. Presque tout s'est bien passé (enfin, après de nombreuses recherches sur google pour les paramètres mysqldump corrects, etc.) sauf une table que j'ai - en fait la table la plus importante de mon application.
La structure du tableau est très simple:
mysql> show create table samples;
.. skipped ...
CREATE TABLE `samples` (
`File_ID` int(11) NOT NULL,
`File` longblob,
PRIMARY KEY (`File_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=binary
mais il est très grand (> 20 Go).
J'ai essayé d'utiliser le paramètre --hex-blob de mysqldump - mais les données dans ce format ne sont pas acceptées par PostgreSQL lorsque j'ai essayé d'utiliser le fichier de vidage résultant comme fichier de commande. Une autre option que j'ai essayée consiste à utiliser l'option --tab pour simplement obtenir un vidage, puis l'insérer dans PostgreSQL avec la commande COPY - mais --hex-blob ne fonctionne pas avec --tab et PostgreSQL n'accepte toujours pas le fichier de vidage qui y dit contiennent des caractères non valides.
Je serais très heureux d'obtenir des conseils à ce sujet - même si je commence à penser qu'écrire un outil de migration personnalisé n'est pas une mauvaise idée après tout ...