About doctrine-migrations
A Symfony skill for creating, reviewing, applying, and rolling back Doctrine Migrations. It covers schema-diff review, reversible migrations, status checks, dry runs, and deployment commands.
Key features
- 01Generate and review schema migrations
- 02Write reversible up and down methods
- 03Check migration status and preview execution
- 04Apply or roll back migrations
- 05Configure migration options
Use cases
- 01Add a mapped column, index, or table
- 02Review generated migration SQL
- 03Deploy pending migrations or roll back a version
- 04Manage migrations across multiple entity managers
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill doctrine-migrationsAfter installing, type/doctrine-migrationsin Claude Code to confirm it loaded.
Bundled filesreference.md
Details
From the project READMEDoctrine Migrations (Symfony)
Use when
- A mapping change needs a schema migration (new column, index or table).
- Reviewing a generated
make:migrationordoctrine:migrations:difffile before it is applied. - Rolling back a version, or deploying pending migrations to production.
- Tuning
doctrine_migrations.yaml(transactional,all_or_nothing,enable_service_migrations).
Default workflow
- Change the entity mapping, then generate the migration with
make:migrationordoctrine:migrations:diff. - Read every
addSql()line: a rename can appear as drop plus add, and index churn is common. - Write a real
down()that reversesup(), and keep one concern per migration. - Check
doctrine:migrations:status, preview withdoctrine:migrations:migrate --dry-run, then rundoctrine:migrations:migrate. - Roll back with
doctrine:migrations:migrate prevordoctrine:migrations:executewith--down. - With several entity managers, pass
--emto every migrations command.
Guardrails
- Never edit an already-applied migration: add a new one.
- Keep diff-generated migrations schema only; put data changes in a dedicated, idempotent migration or command.
- Keep the typed signatures
up(Schema $schema): voidanddown(Schema $schema): void. all_or_nothingis mostly effective on PostgreSQL, since most MySQL DDL commits implicitly.
Progressive disclosure
- Use this file for execution posture and risk controls.
- Open references when deep implementation details are needed.
Output contract
- Migration files with a reviewed
up()and a workingdown(). - Output of
doctrine:migrations:statusand the dry-run, plus the rollback command. - Any
doctrine_migrations.yamlchange and why.
References
reference.md
Comments
Markdown supported