Perché servono le migrazioni, non create_all
Scopra il rischio di modificare manualmente gli schemi in produzione.
Perché servono le migrazioni, non create_all è una lezione Flask Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Flask Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Flask Academy include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Schemas Always Change
Real apps evolve, so your tables must change too. You will add columns, rename fields, and drop old ones as features grow. 🔄
create_all Only Builds Once
Remember the limit you met earlier: create_all only makes missing tables. It never touches a table that already exists.
db.create_all()The Tempting Bad Fix
One tempting fix is drop then recreate. It works in a demo, but it deletes every row, which is unthinkable in production.
db.drop_all()
db.create_all()Editing by Hand Is Risky
Running raw ALTER TABLE by hand on a live database is fragile. One typo or missed step can corrupt data with no easy undo.
What a Migration Is
A migration is a small script that moves your schema from one version to the next in safe, repeatable steps.
Versioned and Ordered
Each migration has a version id and points to the one before it. Together they form an ordered history of every schema change.
Forward and Backward
A migration defines two paths: upgrade applies the change, and downgrade reverses it if something goes wrong.
def upgrade():
...
def downgrade():
...Flask-Migrate Wraps Alembic
Flask-Migrate connects your app to Alembic, the tool that detects schema changes and writes the migration scripts for you.
It Tracks the Current Version
Migrations record the current schema version inside a table called alembic_version, so the tool always knows where you are.
Safe Across Every Environment
The same migration scripts run on your laptop, in CI, and in production, so every environment ends up with an identical schema.
When to Switch
Use create_all only for the very first prototype. The moment your model starts changing, move to migrations for good.
Quick Check
Your table exists and you just added a column. Why not rely on create_all?
Recap
You saw why create_all cannot evolve a schema and how migrations bring safe, versioned, reversible changes. 🎉
Domande Frequenti
La lezione «Perché servono le migrazioni, non create_all» è gratuita?
Sì — il testo completo di «Perché servono le migrazioni, non create_all» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Flask Academy, passa a CoddyKit PRO. Il corso Flask Academy include 4 lezioni in totale.
Cosa imparerò in «Perché servono le migrazioni, non create_all»?
Scopra il rischio di modificare manualmente gli schemi in produzione. Eserciti Flask Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Flask Academy?
Non è richiesta alcuna esperienza precedente. Flask Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Perché servono le migrazioni, non create_all»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Flask Academy?
Sì. Ogni lezione Flask Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché servono le migrazioni, non create_all
- Inizializzare e generare automaticamente una migrazione
- Applicare e annullare modifiche con upgrade
- Esaminare e modificare gli script generati