A migração entre dois DBMS muito diferentes requer muito mais do que apenas a migração dos dados. Mas a migração dos dados é geralmente a parte mais fácil.
Do jeito que tentei, que é gratuito e posso confirmar que funciona:
- crie um dump apenas de esquema mysql
- Ajuste o SQL usando um editor de texto e muita pesquisa e substituição
- execute o SQL convertido no Postgres
- Crie um despejo de texto sem formatação do MySQL (por exemplo, CSV ou outro formato delimitado)
- importar os dados usando o comando COPY do PostgreSQL
A importação dos dados pode ser realmente difícil se você confiar no comportamento do MySQL para aceitar dados ilegais (como 31 de fevereiro)
Meu palpite é que isso será mais rápido do que procurar uma ferramenta, avaliar várias delas e tentar entender a que você escolheu. Mas isso depende de que tipo de "grande" você está se referindo. Se grande for várias centenas de tabelas, isso pode não ser viável. Se grande se referir apenas ao número de linhas, provavelmente esta é a maneira mais rápida de fazer isso.
Existem algumas ferramentas por aí que podem despejar um esquema de banco de dados em um formato independente de DBMS (XML), como Liquibase , SchemaSpy ou WbSchemaReport . Com o Liquibase provavelmente sendo o mais fácil de usar. Os outros exigirão algum trabalho manual para escrever / estender o XSLT para transformar o XML gerado.
Se você estiver usando gatilhos e procedimentos armazenados em MySQL, eu não acredito que haverá qualquer ferramenta automatizada que podem traduzi-los sem a necessidade de uma grande fixação manual do depois - e, em seguida, os procedimentos gerados provavelmente não utilizar qualquer das funções avançadas dos SGBD alvo .