Migrer le schéma de base de données Flower¶
Lorsque vous faites des modifications au schéma de base de données utilisé dans Flower, il est essentiel de créer un script de migration pour s’assurer que les bases de données existantes sur disque peuvent être mises à jour vers le nouveau schéma sans perte de données. À partir de la version Flower de 1.26.0, le cadre utilise Alembic comme outil de migration de base de données.
Ce guide décrit les étapes requises pour créer un nouveau script de migration après avoir modifié le schéma de base de données.
Pre-requisites¶
Installez des versions de développement de Flower selon les instructions dans Installer les versions de développement de Flower avec les dépendances dev.
Génération des Migrations¶
Le schéma SQL de la base de données est défini sous supercore/state/schema/. Après avoir fait des modifications au schéma (par exemple, en ajoutant une nouvelle colonne à une table), générer la révision de migration :
python -m dev.generate_migration "Descriptive message about the schema change"
Cette commande :
Crée une base de données SQLite temporaire
La met à niveau vers la révision
headactuelleExécute l’autogénération pour détecter vos changements de schéma
Generates a new migration file in
py/flwr/supercore/state/alembic/versions/Nettoie automatiquement la base de données temporaire
Révision des Migrations Générées¶
Vérifiez toujours le fichier de migration généré avant de commitir :
Vérifiez que les changements détectés correspondent à votre intention
Vérifiez la logique de migration de données si vous renommez ou supprimez des colonnes
Testez les chemins d’amélioration et de dégradation
Flux de travail manuel (Alternative)¶
Si vous préférez utiliser le CLI Alembic directement :
cd framework
alembic upgrade head
alembic revision --autogenerate -m "Descriptive message about the schema change"
rm state.db # Clean up the generated database file
Important
Le workflow manuel crée un fichier state.db qui ne doit pas être commité dans git.