migration-strategy
Installation
SKILL.md
Migration Strategy Skill
Phase 1 — Discovery
Ask only what context doesn't already reveal:
- Database engine? Postgres, MySQL, SQLite, and MSSQL have meaningfully different lock behaviors. What's safe in Postgres can table-lock in MySQL.
- Table size? Under 1M rows: standard migration. Over 10M rows: requires a different playbook (see Phase 3).
- Deployment model? Blue-green, rolling, or big-bang deploy. Zero-downtime is only achievable with rolling or blue-green.
- Migration tool in use? Alembic, Flyway, Rails, Prisma — each has different support for transactional DDL.
- Can the app tolerate a read-only window? Affects whether you need full online migration or just careful ordering.
Phase 2 — Strategy Selection
The core zero-downtime constraint
Two versions of your app run simultaneously during a rolling deploy: the old version and the new version. Your schema must be valid for both at the same time. This single rule drives every pattern below.