Como migrar um banco de dados de MySQL para PostgreSQL
Oi! Aqui é a Sensei da GeHost 🧘♀️ Se você chegou até aqui, provavelmente sua aplicação cresceu, ou o seu desenvolvedor recomendou o PostgreSQL por causa de algum recurso específico que ele oferece. Migrar de banco de dados assusta um pouco à primeira vista, mas com calma e seguindo os passos certos, dá tudo certo. Vamos juntos, passo a passo.
Antes de tudo: migração de banco de dados é uma operação sensível. Se você não tem familiaridade técnica com bancos de dados, o ideal é fazer essa migração com o seu desenvolvedor ou pedir orientação ao nosso suporte pelo painel.gehost.com.br. Este guia serve para você entender o processo e acompanhar cada etapa com segurança.
Por que migrar de MySQL para PostgreSQL?
MySQL e PostgreSQL são dois bancos de dados relacionais muito usados, mas com filosofias diferentes. O PostgreSQL costuma ser escolhido quando a aplicação precisa de recursos mais avançados de consultas, tipos de dados mais ricos (como JSON estruturado) ou maior rigor com integridade dos dados. Não existe "melhor" absoluto — existe o que faz mais sentido para o seu projeto.
1. Faça um backup completo antes de qualquer coisa
Esse é o passo mais importante do guia inteiro. Nunca comece uma migração sem ter uma cópia de segurança completa do banco original.
- Acesse o cPanel do seu plano em painel.gehost.com.br.
- Vá até a ferramenta Backup e gere um backup completo da conta (ou, no mínimo, um backup parcial do banco de dados que você vai migrar).
- Baixe esse backup para o seu computador e guarde em um lugar seguro.
2. Exporte os dados do banco MySQL
No cPanel, vá até Bancos de Dados MySQL para localizar o banco que você quer migrar. A exportação em si (o famoso "dump") normalmente é feita via linha de comando (mysqldump) ou por uma ferramenta como o phpMyAdmin, exportando no formato SQL.
Dica da Sensei: se você não tem experiência com linha de comando, esse é um bom momento para chamar seu desenvolvedor ou abrir um chamado com o nosso suporte. Exportar errado pode gerar um arquivo incompleto.
3. Entenda as principais diferenças entre MySQL e PostgreSQL
Os dois bancos usam SQL, mas não são 100% compatíveis. Algumas diferenças comuns que geram erro na migração:
- Auto incremento: no MySQL se usa
AUTO_INCREMENT; no PostgreSQL, o equivalente é o tipoSERIAL(ouIDENTITY). - Aspas de identificadores: o MySQL costuma usar crase (
`nome`) para nomes de tabela/coluna; o PostgreSQL usa aspas duplas ("nome"). - Tipos de dados: alguns tipos do MySQL (como
TINYINTpara valores booleanos) não existem exatamente igual no PostgreSQL, que tem um tipoBOOLEANnativo. - Sensibilidade a maiúsculas/minúsculas: o PostgreSQL é mais rigoroso com isso em nomes de tabelas e colunas.
Por isso, raramente um dump exportado do MySQL roda "de primeira" no PostgreSQL sem ajustes. Existem ferramentas de conversão (como scripts e utilitários próprios para esse fim) que ajudam a automatizar boa parte desse trabalho — vale pesquisar com seu desenvolvedor qual se encaixa melhor no seu caso.
4. Crie o banco PostgreSQL de destino
Antes de importar qualquer coisa, o banco PostgreSQL de destino precisa existir. A disponibilidade de PostgreSQL pode variar conforme o seu plano — confirme com o nosso suporte, pelo painel, se o seu plano contempla banco de dados PostgreSQL antes de seguir com a migração.
5. Importe os dados convertidos
Com o dump já ajustado para a sintaxe do PostgreSQL, o próximo passo é importar esses dados no banco de destino. Depois da importação, é essencial conferir:
- Se todas as tabelas foram criadas.
- Se a quantidade de registros bate com o banco original.
- Se as relações entre tabelas (chaves estrangeiras) continuam funcionando.
6. Atualize a aplicação
De nada adianta migrar o banco se a sua aplicação continuar "conversando" com o MySQL antigo. É preciso:
- Trocar as credenciais de conexão (host, usuário, senha e nome do banco) no arquivo de configuração da aplicação.
- Trocar o driver/biblioteca de conexão, se a aplicação usar um específico para MySQL.
- Revisar consultas SQL "cruas" no código, caso alguma use sintaxe exclusiva do MySQL.
7. Teste tudo antes de "virar a chave"
Nunca aponte a aplicação em produção direto para o novo banco sem testar antes. O ideal é:
- Testar em um ambiente separado (ou fora do horário de pico) com o banco PostgreSQL.
- Validar as principais funcionalidades: login, cadastro, listagens, relatórios — tudo que usa o banco.
- Só depois de tudo validado, colocar o banco PostgreSQL como o banco oficial em produção.
Dica da Sensei: mantenha o banco MySQL antigo intacto por alguns dias após a migração, como plano B. Só remova depois de ter certeza de que está tudo funcionando redondo no PostgreSQL.
Precisa de ajuda?
Migração de banco de dados é uma tarefa técnica e cada aplicação tem suas particularidades. Se durante o processo você tiver dúvidas sobre o que o seu plano de hospedagem oferece, abra um chamado pelo painel.gehost.com.br — nossa equipe de suporte está pronta para te orientar. 🌱