<aside> 💬
Contexto: O sistema está instalado e funcionando. Mas o banco está vazio. A Cláudia olha para a tela e pergunta:
"- E os meus 3.000 sócios? Cinco anos de cadastro vão para o lixo?"
Não vão — mas transferir esses dados do Excel para o banco de dados é provavelmente a etapa mais delicada de toda a implantação. Um erro aqui pode significar dados perdidos, duplicados ou corrompidos. Não tem como desfazer sem backup.
</aside>
Migração de dados é o processo de transferir informações de um sistema ou formato para outro, garantindo que os dados cheguem íntegros, completos e no formato correto. Na prática de implantação, os cenários mais comuns são:
| Origem | Destino | Situação típica |
|---|---|---|
| Planilha Excel / Google Sheets | Banco de dados relacional | Cliente nunca teve sistema, usava planilha |
| Banco de dados antigo | Banco de dados novo | Troca de sistema — dados já estruturados |
| Arquivos de texto / CSV | Banco de dados relacional | Exportação de sistema legado |
| Papel / caderno | Banco de dados | Digitalização de processos manuais |
No caso da Chapecoense, o cenário é o mais comum: uma planilha Excel com anos de dados que precisa ir para o PostgreSQL.
Nas outras etapas da implantação, se algo der errado você pode simplesmente refazer. Instalou errado? Desinstala e instala de novo. Configurou o .env errado? Corrige e reinicia.
Com dados, não é assim.
Dados reais têm valor que não pode ser recuperado. Os 3.000 sócios da Chapecoense representam cinco anos de relacionamento com o clube. Se esses dados forem perdidos ou corrompidos, não existe git checkout para desfazer.
Os riscos mais comuns numa migração são:
"15/03/1990" foi salva como null porque o script esperava o formato 1990-03-15.Antes de escrever qualquer script, o técnico precisa entender o que está migrando.
Analise a planilha ou banco de origem:
Limpe os dados antes de migrar:
<aside> 📌
Regra prática: se você encontrar dados sujos, não tente corrigir tudo no script de migração. Corrija na origem primeiro, valide, depois migre. Scripts de migração que fazem limpeza e importação ao mesmo tempo são difíceis de debugar quando algo dá errado.
</aside>