====== 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