Ora sto migrando il mio database MySQL su PostgreSQL. Quasi tutto è andato bene (beh, dopo aver cercato su google per i parametri di mysqldump corretti ecc.) Tranne una tabella che ho - in realtà la tabella più importante della mia app.
La struttura della tabella è molto semplice:
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
ma è molto grande (> 20 Gb).
Ho provato ad usare il parametro --hex-blob di mysqldump - ma i dati in questo formato non sono accettati da PostgreSQL quando ho provato a usare il file di dump risultante come file di comando. Un'altra opzione che ho provato è usare l'opzione --tab per ottenere solo un dump e quindi inserirlo in PostgreSQL con il comando COPIA - ma --hex-blob non funziona con --tab e PostgreSQL non accetta ancora il dumpfile che dice lì sono caratteri non validi in esso.
Sarei molto felice di ricevere consigli su questo argomento, anche se sto iniziando a pensare che scrivere uno strumento di migrazione personalizzato non sia una cattiva idea dopo tutto ...