Como migrar banco de dados MySQL para PostgreSQL

Sugestões simples, eficazes e rápidas para migrar bancos de dados MySQL para PostgreSQL.

[ Hits: 26.361 ]

Por: José Cleydson Ferreira da Silva em 16/10/2017


Introdução



Postgres é um sistema de gerenciamento de banco de dados com ênfase na extensibilidade e na conformidade de padrões. Como servidor de banco de dados, suas principais funções são armazenar dados de forma segura e devolver esses dados em resposta a solicitações de outros aplicativos de software.

MySQL é um sistema extensivamente utilizado, no entanto, o fork MariaDB tem conquistado seu espaço dentro do meio empresarial e por desenvolvedores de softwares livres no mundo todo. Tal fato tem permitido que o seu desenvolvimento fosse mais acelerado do que o MySQL. Mas outras soluções robustas e de custo 0, são oferecidas e com vantagens no gerenciamento e usabilidade.

O banco de dados Postgres tem muitas características desejáveis que esses sistemas ainda estão em desenvolvimento. Sua comunidade tem se mostrado atuante no desenvolvimento de novas funcionalidades. Uma de suas características marcantes é o gerenciamento de schemas dentro de uma database, especificamente.

Ainda que muitas empresas e desenvolvedores matem bases de dados MySQL pela praticidade e por ofertas de sistemas ou hosts de hospedagem. Entretanto, com advento de hosts dedicados, esse cenário tem sofrido levemente alterações e tendências futuras de uso de banco de dados de cunho específico tornará uma realidade.

Certamente, empresas e grandes organizações tendem a migrar seus bancos de dados para tecnologias capazes de armazenar grandes volumes de dados na ordem de TB. Atualmente, postgres suporta 32TB de dados.

A seguir, são apresentados na prática uma forma simples e rápida de realizar a migração de bancos de dados MySQL para PostgreSQL. Para realizar esse procedimento nós iremos utilizar o script de Lanyrd's (MySQL to PostgreSQLconversion script), por favor, não deixe de visitar a página:
Download de Mysql-postgresql-converter:

git clone https://github.com/lanyrd/mysql-postgresql-converter.git
cd mysql-postgresql-converter

Extrair banco de dados compatível com Postgres:

mysqldump --compatible=postgresql --default-character-set=utf8 -r plant_data.mysql -u root p d plant_data

Converter padrão de MySQL para Postgres:

python db_converter.py plant_data.mysql plant_data.psql

Crie um banco de dados no Postgres e, em seguida, faça a importação dos dados:

su postgres
psql
cretate database plant_data

Sair do banco de dados:

q

Importar a base de dados:

psql d plant_data -f plant_data.psql

Sua base de dados será importada para o banco de dados Postgres.

Conclusão

Esse é um processo simples e fácil de migrar de um banco de dados de MySQL para Postgres, sem complicações.

Outras maneiras de realizar o mesmo procedimento são oferecidos e podem ser sugeridos nos comentários abaixo. Esse procedimento foi utilizado para migrar uma modesta base de dados de 6 GB com sucesso e atendeu às necessidades para o momento.

Sobre o autor José Cleydson Ferreira Silva, possui mestrado em Ciência da Computação e atualmente doutorando em Genética e Melhoramento pela Universidade Federal de Viçosa/UFV. É usuário do Linux por filosofia.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Implementando servidor web Java com Tomcat no Linux

Bioinformática - Análise Filogenética com Clustalx

Bioinformática - Clustalw-MPI: Análise Filogenética utilizando computação paralela e distribuída

Bioinformática - Instalação do Mr Bayes em ambiente paralelo

Bioinformática - PhyML: alinhamento de sequências nucleotídicas em ambiente paralelo

Leitura recomendada

Checklist de performance do PostgreSQL 8.0

Unificando bases de dados com Schemas

Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

Encoding do Postgres (latin1) e encoding do SO (Debian/Ubuntu)

psql - Conheça o básico

  
Comentários
[1] Comentário enviado por Lwkas em 17/10/2017 - 23:32h

Muito bom!

[2] Comentário enviado por masterprime em 20/10/2017 - 06:31h

Bom Dia. Muito bom o artigo. vlw

[3] Comentário enviado por hrcerq em 23/10/2017 - 12:19h

Simples, direto, objetivo e prático. Mais uma excelente contribuição.

---

Atenciosamente,
Hugo Cerqueira

[4] Comentário enviado por msfidelis em 23/10/2017 - 14:57h

Muito massa! Pra quem quer executar em bancos com escala muito grande recomendo a ferramenta DMS da AWS
https://aws.amazon.com/pt/dms/

[5] Comentário enviado por andrelacomski em 26/10/2017 - 22:07h

Excelente!
Today's Goal: Be better than yesterday!

[6] Comentário enviado por thandra em 20/07/2018 - 14:53h

Será que alguém poderia me ajudar com uma dúdiva, queria saber o python que deve ser obrigatoriamente a versão 2??

[7] Comentário enviado por cleysinhonv em 20/07/2018 - 15:49h

Oi,
Normalmente usara o python padrao do ambiente (#!/usr/bin/env python), mas provavelmente funcionara melhor com python 2.

[8] Comentário enviado por hermes_hfr46 em 12/05/2021 - 15:10h


Senhores.. boa tarde... sei que o artigo é antigo.. tive necessidade de fazer essa migração.. ele gerou o arquivo porem sem nenhum insert.. tabelas vazias.. .alguém tem a solução?

grato.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts