Flask Academy · Leçon

Pourquoi vous avez besoin de migrations plutôt que de create_all

Découvrez le risque de modifier manuellement des schémas en production.

Leçon 1 sur 413 étapes

Pourquoi vous avez besoin de migrations plutôt que de create_all est une leçon Flask Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Flask Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Flask Academy comprend 4 leçons au total.

Les schémas changent toujours

Les applications réelles évoluent, vos tables doivent donc évoluer elles aussi. Vous ajouterez des colonnes, renommerez des champs et supprimerez les anciens à mesure que les fonctionnalités se développent. 🔄

create_all ne construit qu'une seule fois

Souvenez-vous de la limite rencontrée précédemment : create_all crée uniquement les tables manquantes. Il ne touche jamais à une table qui existe déjà.

db.create_all()

La mauvaise solution tentante

Une solution tentante consiste à supprimer les tables, puis à les recréer. Cela fonctionne dans une démonstration, mais supprime chaque ligne, ce qui est impensable en production.

db.drop_all()
db.create_all()

Les modifications manuelles sont risquées

Exécuter manuellement une instruction ALTER TABLE brute sur une base de données active est fragile. Une faute de frappe ou une étape oubliée peut corrompre les données, sans possibilité simple d'annuler l'opération.

Qu'est-ce qu'une migration ?

Une migration est un petit script qui fait passer votre schéma d'une version à la suivante en suivant des étapes sûres et reproductibles.

Versionnées et ordonnées

Chaque migration possède un identifiant de version et pointe vers celle qui la précède. Ensemble, elles forment un historique ordonné de chaque modification du schéma.

En avant et en arrière

Une migration définit deux chemins : upgrade applique la modification et downgrade l'annule si quelque chose se passe mal.

def upgrade():
    ...

def downgrade():
    ...

Flask-Migrate enveloppe Alembic

Flask-Migrate relie votre application à Alembic, l'outil qui détecte les modifications du schéma et écrit les scripts de migration pour vous.

Il suit la version actuelle

Les migrations enregistrent la version actuelle du schéma dans une table appelée alembic_version, afin que l'outil sache toujours où vous en êtes.

Sûres dans tous les environnements

Les mêmes scripts de migration s'exécutent sur votre ordinateur, dans l'intégration continue et en production, de sorte que chaque environnement possède finalement un schéma identique.

Quand changer de méthode

Utilisez create_all uniquement pour le tout premier prototype. Dès que votre modèle commence à changer, passez définitivement aux migrations.

Vérification rapide

Votre table existe et vous venez d'ajouter une colonne. Pourquoi ne pas vous fier à create_all ?

Récapitulatif

Vous avez compris pourquoi create_all ne peut pas faire évoluer un schéma et comment les migrations apportent des modifications sûres, versionnées et réversibles. 🎉

Gratuit pour commencer

Apprends Python avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Pourquoi vous avez besoin de migrations plutôt que de create_all » est-elle gratuite ?

Oui — le texte complet de « Pourquoi vous avez besoin de migrations plutôt que de create_all » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Flask Academy, passe à CoddyKit PRO. Le cours Flask Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Pourquoi vous avez besoin de migrations plutôt que de create_all » ?

Découvrez le risque de modifier manuellement des schémas en production. Tu pratiques Flask Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Flask Academy ?

Aucune expérience préalable n'est requise. Flask Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Pourquoi vous avez besoin de migrations plutôt que de create_all » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Flask Academy ?

Oui. Chaque leçon Flask Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi vous avez besoin de migrations plutôt que de create_all
  2. Initialiser et générer automatiquement une migration
  3. Appliquer et annuler avec upgrade
  4. Vérifier et modifier les scripts générés
← Retour à Flask Academy