====== Flask-Migrate ====== Doc: [[https://flask-migrate.readthedocs.io/en/latest/]] ===== Installation ===== pip install flask-migrate ===== Initialisation ===== Ajouter une propriété **migrate** dans l'application, après la création de la **db** : from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate # Création de l'objet application app = Flask(__name__) # ... # Création de l'objet db et import des classes de modèles db = SQLAlchemy(app) from app.models import * # ... # Création de l'objet migrate migrate = Migrate(app, db) Créer et initialiser le dossier des migrations : (venv) $ flask db init ===== Commandes ===== Vérifier s'il y a des changements au niveau des modèles, si oui une nouvelle migration devra être générée : flask db check ===== Migration ===== Un cycle se déroule comme suit : * Modifier les classes de modèles * Créer une migration automatique * Voir **flask db migrate** * Vérifier le code de migration avant de l'appliquer * Il peut être nécessaire d'ajuster le code généré automatiquement * Appliquer la migration à la base de données * Voir **flask db upgrade** **flask db migrate** : (venv) $ flask db migrate # avec un éventuel message : (venv) $ flask db migrate -m "Initial migration" (venv) $ flask db migrate -m "Added users table" **flask db upgrade** (venv) $ flask db upgrade