Skill pour la gestion des migrations de base de donnees Alembic. TRIGGER quand: modification de modeles SQLModel, ajout/suppression de colonnes, creation de nouvelles tables, ou quand l'utilisateur mentionne "migration" ou "schema".
Les modeles sont dans mvp/backend/app/models/. Modifier le modele existant ou en creer un nouveau.
cd mvp/backend
alembic revision --autogenerate -m "description_claire"
TOUJOURS lire et verifier le fichier de migration genere dans mvp/backend/alembic/versions/ avant de l'appliquer.
Verifier:
upgrade() et downgrade() sont coherentesalembic upgrade head
Ne jamais supprimer une colonne directement - proceder en 2 etapes:
Data migration - si des donnees doivent etre transformees:
def upgrade():
# 1. Ajouter la nouvelle colonne
op.add_column('users', sa.Column('full_name', sa.String()))
# 2. Migrer les donnees
op.execute("UPDATE users SET full_name = first_name || ' ' || last_name")
# 3. Supprimer les anciennes colonnes (optionnel, migration suivante)
Toujours tester le downgrade apres l'upgrade
Coherence Pydantic - mettre a jour les schemas Pydantic correspondants dans schemas.py
Index - ajouter des index sur les colonnes frequemment filtrees/triees
alembic current # Version actuelle
alembic history # Historique des migrations
alembic upgrade head # Appliquer toutes les migrations
alembic downgrade -1 # Annuler la derniere migration
alembic revision --autogenerate -m "msg" # Generer une migration