[MySQL] – Migrando MySQL para PostgreSQL

Migração MySQL para PostgreSQL
Bom pessoal, segue abaixo instruções para migração de bancos de dados MySQL para PostgreSQL com a ferramenta da EnterpriseDB.

Link para download da Ferramenta:
https://www.dropbox.com/s/0en05h9goejgapz/EnterpriseDB-MigrationToolkit.zip?dl=0

Podemos também fazer o download pelo site da EnterpriseDB:
http://www.enterprisedb.com/products-services-training/products-overview/postgres-plus-solution-pack/migration-toolkit

Migra Somente estrutura do Banco de dados sem chaves estrangeiras
cmd>runMTK.bat -schemaOnly -allTables -constraints -skipFKConst -sourcedbtype mysql employees

Migra somente os dados através de lotes de dados
cmd>runMTK.bat -dataOnly -fetchSize 1 -sourcedbtype mysql employees

Migra todo banco de dados com constraints e dados
cmd>runMTK.bat -fetchSize 1 -sourcedbtype mysql employees

——-
Configuração do arquivo “toolkit.properties”:
SRC_DB_URL=jdbc:mysql://127.0.0.1/employees
SRC_DB_USER=root
SRC_DB_PASSWORD=teste

TARGET_DB_URL=jdbc:postgresql://localhost:5432/exemplo
TARGET_DB_USER=postgres
TARGET_DB_PASSWORD=teste

——-

Dentro da pasta do aplicativo, existe um arquivo chamado “mtk-readme.txt” que possui o help do utilitário.

——-

OBS:
Tendo o Java já instalado na sua maquina copie todos os .jar da pasta lib para a pasta C:\Program Files (x86)\Java\jre6\lib\ext ou lib\ext dentro da sua versão do Java que está instalada.

  • Realmente essa ferramenta é muito boa, já fiz uso dela uma vez para migrar os dados de uma aplicação e funcionou bem, só recomendo que ao fim da migração deem uma olhada na estrutura das tabelas para ver se todas as chaves primárias e estrangeiras foram criadas corretamente assim como as Constrants como Unique também foram para depois não ter problema de integridade no SGBD.

  • Bom dia, achei interessante, porem não estou conseguindo migrar, na hora de eu inserir o código no CMD do windows, ele retorna um erro:

    Source database connectivity info…
    conn =jdbc:mysql://localhost/wordpress
    user =root
    password=******
    Target database connectivity info…
    conn =jdbc:postgresql://localhost:5432/wordpress
    user =postgres
    password=******
    Connecting with source MySQL database server…
    Error: java.lang.Exception: Following problem occurred while connecting to MySQL server.
    com.mysql.jdbc.Driver
    Stack Trace:
    java.sql.SQLException: java.lang.Exception: Following problem occurred while connecting to MySQL server.
    com.mysql.jdbc.Driver
    at com.edb.MigrationToolkit.initToolkit(MigrationToolkit.java:2624)
    at com.edb.MigrationToolkit.main(MigrationToolkit.java:1279)

    One or more schema objects could not be imported during the migration process. Please review the migration output for more details.

    Migration logs have been saved to C:\Users\FGS\.enterprisedb\migration-toolkit\logs

    ******************** Migration Summary ********************

    Total objects: 0
    Successful count: 0
    Failure count: 0

    *************************************************************
    Porquê minha base de dados MYSQL é localhost, portanto não tem senha, então não sei se o campo senha ficaria vazio. E como comecei a estudar POSTGRE hoje, não estou muito convicto que esteja funcionando.

    Desde já agradeço.