← ClaudeAtlas

doctrine-migrationlisted

Génère, relit ou corrige une migration Doctrine (Symfony/Sylius). Déclenche sur "make:migration", "migrations:migrate", "ajouter colonne", "NOT NULL table existante", "down()", "migration cassée". Impose make:migration et vérifie réversibilité.
gabrielmustiere/skills · ★ 1 · API & Backend · score 73
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é