Agora estou migrando meu banco de dados MySQL para o PostgreSQL. Quase tudo correu bem (bem, depois de pesquisar bastante os parâmetros corretos do mysqldump etc.), exceto uma tabela que tenho - na verdade a tabela mais importante no meu aplicativo.
A estrutura da tabela é muito simples:
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
mas é muito grande (> 20 Gb).
Eu tentei usar --hex-blob parâmetro do mysqldump - mas dados neste formato não são aceitos pelo PostgreSQL quando tentei usar o arquivo de despejo resultante como um arquivo de comando. Outra opção que eu tentei é usar a opção --tab para obter um despejo e inseri-lo no PostgreSQL com o comando COPY - mas --hex-blob não está funcionando com o --tab e o PostgreSQL ainda não aceita o dumpfile dizendo lá são caracteres inválidos.
Eu ficaria muito feliz em receber conselhos sobre esse assunto - embora eu esteja começando a pensar que escrever uma ferramenta de migração personalizada não é uma má idéia, afinal ...