Aller au contenu principal

3 formations sont désormais disponibles : Python, Flask et JS.

Aller au contenu principal

Migrations (`Flask-Migrate`)

Apprendre Flask : Le Guide Ultime
4 min de lecture
Gratuit

Tu te souviens de db.create_all() ? C'est bien pour commencer, mais c'est nul pour la maintenance. Pourquoi ? Si tu ajoutes une colonne age à ta table User et que tu relances create_all(), Flask ne fera RIEN car la table existe déjà. Et si tu supprimes le fichier db, tu perds toutes tes données !

La solution pro : Les Migrations. C'est comme un système de version (Git) pour ta base de données.

Installation

pip install flask-migrate

Configuration

Dans app.py :

from flask_migrate import Migrate

# ... après db = SQLAlchemy(app)
migrate = Migrate(app, db)

Utilisation (Commandes Terminal)

  1. Initialisation (À faire une seule fois au début du projet) :

    flask db init
    

    Ça crée un dossier migrations.

  2. Créer une migration (À chaque fois que tu modifies tes modèles Python) : Disons que tu ajoutes age = db.Column(db.Integer) dans User.

    flask db migrate -m "Ajout de la colonne age"
    

    Flask détecte le changement et crée un script de migration.

  3. Appliquer la migration (Mettre à jour la base réelle) :

    flask db upgrade
    

Si tu as fait une bêtise, tu peux revenir en arrière avec :

flask db downgrade

Avec ça, tu peux faire évoluer ta BDD en production sans perdre de données. Indispensable.