Por que você precisa de migrações, não de create_all
Entenda o risco de editar esquemas ativos manualmente.
Por que você precisa de migrações, não de create_all é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.
Os esquemas sempre mudam
Aplicativos reais evoluem, então suas tabelas também precisam mudar. Você adicionará colunas, renomeará campos e removerá campos antigos conforme os recursos crescerem. 🔄
create_all só cria uma vez
Lembre-se da limitação vista anteriormente: create_all só cria tabelas ausentes. Ele nunca altera uma tabela que já existe.
db.create_all()A solução ruim e tentadora
Uma solução tentadora é remover e recriar. Ela funciona em uma demonstração, mas exclui todas as linhas, algo impensável em produção.
db.drop_all()
db.create_all()Editar manualmente é arriscado
Executar ALTER TABLE bruto manualmente em um banco de dados ativo é frágil. Um erro de digitação ou uma etapa esquecida pode corromper os dados sem uma forma simples de desfazer.
O que é uma migração
Uma migração é um pequeno script que leva seu esquema de uma versão à seguinte em etapas seguras e repetíveis.
Versionadas e ordenadas
Cada migração tem um identificador de versão e aponta para a migração anterior. Juntas, elas formam um histórico ordenado de cada alteração do esquema.
Para frente e para trás
Uma migração define dois caminhos: upgrade aplica a alteração, e downgrade a desfaz caso algo dê errado.
def upgrade():
...
def downgrade():
...Flask-Migrate envolve o Alembic
O Flask-Migrate conecta seu aplicativo ao Alembic, a ferramenta que detecta alterações no esquema e escreve os scripts de migração para você.
Ele acompanha a versão atual
As migrações registram a versão atual do esquema em uma tabela chamada alembic_version, para que a ferramenta saiba sempre em que ponto você está.
Seguro em todos os ambientes
Os mesmos scripts de migração são executados no seu computador, na integração contínua e em produção, para que todos os ambientes terminem com um esquema idêntico.
Quando mudar
Use create_all somente no primeiro protótipo. Assim que seu modelo começar a mudar, passe definitivamente para as migrações.
Verificação rápida
Sua tabela existe e você acabou de adicionar uma coluna. Por que não confiar em create_all?
Recapitulação
Você viu por que create_all não consegue evoluir um esquema e como as migrações trazem alterações seguras, versionadas e reversíveis. 🎉
Perguntas Frequentes
A aula “Por que você precisa de migrações, não de create_all” é grátis?
Sim — o texto completo de “Por que você precisa de migrações, não de create_all” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.
O que vou aprender em “Por que você precisa de migrações, não de create_all”?
Entenda o risco de editar esquemas ativos manualmente. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Flask Academy?
Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Por que você precisa de migrações, não de create_all”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Flask Academy?
Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Por que você precisa de migrações, não de create_all
- Inicialize e gere automaticamente uma migração
- Aplique e reverta com upgrade
- Revise e edite scripts gerados