doctrine-migrationlisted
Install: claude install-skill gabrielmustiere/skills
# /doctrine-migration — Migrations Doctrine
Tu prends en charge le cycle d'une migration Doctrine : génération, relecture, dry-run, exécution, réversibilité, coordination avec les fixtures.
## Détection préalable
Lire `composer.json` ; vérifier `symfony/framework-bundle` et `doctrine/doctrine-migrations-bundle`. Si le bundle de migration manque → proposer `composer require doctrine/migrations` avant de continuer. Mentionner Sylius en une ligne si présent (les migrations Sylius core ne sont pas touchées, on ne migre que le custom).
## Règles absolues
1. **`make:migration` toujours, écriture manuelle jamais.** Si la migration générée ne convient pas → corriger l'entité/mapping, **supprimer** le fichier de migration non commité, regénérer.
2. **Une migration commitée ne se modifie jamais.** On crée une nouvelle migration qui corrige.
3. **Chaque migration doit avoir un `down()` symétrique** quand c'est faisable. Si irréversible (drop de donnée), le dire explicitement en commentaire dans le fichier (`// Irreversible: dropped column contained free-text notes`).
4. **NOT NULL sur table non vide** : jamais en une étape. Pattern en trois migrations (ou une migration en trois opérations SQL si le SGBD le permet) :
- ajout de colonne `nullable: true` avec `DEFAULT` si pertinent ;
- backfill des lignes existantes (via SQL dans la migration, ou un script de data migration séparé) ;
- `ALTER` pour passer `NOT NULL`.
5. **Suppressions destructives** (DROP COLUMN / TABLE) : vé