Context
Database migrations are applied directly to production with no dry-run capability. Failed migrations require manual database intervention and cause downtime.
Current Limitation/Problem
No dry-run, rollback testing, or schema drift detection. A failed ALTER TABLE migration locks the table for minutes.
Expected Outcome
Migration tooling: dry-run on read replica, automated rollback testing (down+up in CI), zero-downtime migration patterns (expand-migrate-contract), and schema drift detection.
Acceptance Criteria
Technical Scope
- scripts/db-dry-run.sh - dry-run script against read replica
- scripts/db-rollback-test.sh - rollback CI test (down + up)
- scripts/db-validate.sh - migration linter and schema drift checker
- db/migrations/ - migration template with zero-downtime phases
- .github/workflows/db-migration.yml - CI migration validation workflow
- backend/shared/db/ - migration runner with advisory lock support
Context
Database migrations are applied directly to production with no dry-run capability. Failed migrations require manual database intervention and cause downtime.
Current Limitation/Problem
No dry-run, rollback testing, or schema drift detection. A failed ALTER TABLE migration locks the table for minutes.
Expected Outcome
Migration tooling: dry-run on read replica, automated rollback testing (down+up in CI), zero-downtime migration patterns (expand-migrate-contract), and schema drift detection.
Acceptance Criteria
Technical Scope