Aller au contenu

Aide-mémoire de la progression Fixtures

Récapitulatif des paliers de la progression Fixtures et des commandes de l'opt-in forge-mvc-fixtures (ADR-074).

Opt-in à SQL visible

forge-mvc-fixtures est un opt-in CLI-only, à installer explicitement (pip install --pre forge-mvc-fixtures).
Les fixtures sont des fichiers .sql relus, chargés dans la base de l'environnement actif ; le SQL est affiché avant d'être exécuté.

Niveau débutant : charger

# Palier Ce qu'on apprend Commande-clé
1 Bonjour les fixtures Ce qu'est une fixture, où elle vit mvc/fixtures/*.sql
2 Charger une première fixture Afficher puis charger fixtures:load, --run

Niveau intermédiaire : rejouer, cadrer, générer

# Palier Ce qu'on apprend Commande-clé
1 Repartir d'un état propre Vider les tables ciblées fixtures:purge, --run
2 Cadrer par environnement Viser APP_ENV, prod protégée --force
3 Générer plutôt qu'écrire à la main Échafauder et générer fixtures:make-factory, fixtures:generate

Niveau avancé : coder et situer

# Palier Ce qu'on apprend Notion-clé
1 La factory comme code Coder sa génération rows(), self.faker, --seed
2 Relier les fixtures entre elles Colonnes réelles, références, ordre FK self.reference, --no-fk-checks
3 Fixtures callable Import, valeurs calculées en Python Fixture.load(), purge()
4 Fixtures ou migration de seed Choisir la bonne voie Frontière (principe 11)
5 Un opt-in CLI-only Profil opt-in, indépendance du cœur CLI-only

Mémo des commandes

Commande Effet
forge fixtures:load Affiche le SQL des fixtures (aucun effet).
forge fixtures:load --run Charge les fixtures dans la base de l'environnement actif.
forge fixtures:purge Affiche les DELETE dérivés des fixtures.
forge fixtures:purge --run Vide les tables ciblées.
... --run --force Autorise l'exécution en APP_ENV=prod.
forge fixtures:make-factory <entity> Échafaude une factory depuis le contrat d'entité.
forge fixtures:generate <entity> --rows N --seed S Exécute la factory, écrit mvc/fixtures/<table>.sql.

Règle d'or

Données permanentes de production : migration de seed (migration:apply).
Données de démo ou de test rejouables : fixtures (fixtures:load / fixtures:purge).