Files
ui-tracker/skills/software/database-migrations.md

46 lines
1.6 KiB
Markdown
Raw Normal View History

2026-03-27 22:34:12 -05:00
# Database Migrations and Data Evolution
## Purpose
Change schemas and data safely while protecting compatibility, correctness, rollout reliability, and recovery options.
## When to use
- Adding, removing, or changing database schema
- Backfilling or transforming data
- Introducing compatibility windows between old and new code
- Planning rollout for data-sensitive changes
## Inputs to gather
- Current schema, access patterns, and data volume
- Migration tooling and deployment model
- Compatibility requirements across services, jobs, or clients
- Rollback constraints and data recovery options
## How to work
- Prefer staged migrations when compatibility matters: expand, backfill, switch reads or writes, then contract.
- Minimize lock risk, data loss risk, and long-running migration risk.
- Consider how old and new code will coexist during rollout.
- Define verification steps for schema state and critical data correctness.
- Document irreversible steps and operator actions clearly.
## Output expectations
- Safe migration plan or implementation
- Compatibility and rollout notes
- Verification and rollback considerations
## Quality checklist
- The migration is safe for the repository's deployment model.
- Data correctness is protected during and after rollout.
- Backwards and forwards compatibility are considered when needed.
- Irreversible or risky steps are made explicit.
## Handoff notes
- Call out sequencing requirements across application code, migrations, and background jobs.
- Pair with release/change summary and technical docs when operators or teammates need a clear rollout path.