O que costumo fazer para essas migrações é duplo:
- Extraia toda a definição do banco de dados do MySQL e adapte-a à sintaxe do PostgreSQL.
- Percorra a definição do banco de dados e transforme-a para aproveitar a funcionalidade do PostgreSQL que não existe no MySQL.
Em seguida, faça a conversão e escreva um programa em qualquer linguagem com a qual você se sinta mais confortável que realize o seguinte:
- Lê os dados do banco de dados MySQL.
- Executa qualquer transformação necessária nos dados a serem armazenados no banco de dados PostgreSQL.
- Salva os dados agora transformados no banco de dados PostgreSQL.
Redesenhe as tabelas para que o PostgreSQL aproveite seus recursos.
Se você fizer algo como usar um
sed
script para converter o dump SQL de um formato para outro, tudo o que você está fazendo é colocar um banco de dados MySQL em um servidor PostgreSQL. Você pode fazer isso, e ainda haverá algum benefício em fazê-lo, mas se for migrar, migre totalmente. Isso envolverá um pouco mais de tempo gasto, mas ainda não encontrei uma situação em que não valha a pena.