Database Migration
A database migration is a versioned change. It moves stored data and its schema from one known state to another.
Another example
A release first adds a timezone field that may be empty. It fills old records, then enforces the new constraint later.
Main parts
- 01Identity or input
- 02Policy or transformation
- 03Stored result and audit evidence
Use it when
Change production data in stages. Each step should be visible and able to be reversed.
Do not use it when
Before a destructive change, prove that backups, compatibility, and rollback work.
Name used in code
migration up/down Before you ship
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Design or review Database Migration for this system while keeping data correct, secure, and easy to operate. User context: A release first adds a timezone field that may be empty. It fills old records, then enforces the new constraint later. Technical concept or control: Database Migration. Why it fits: Change production data in stages. Each step should be visible and able to be reversed. Do not use it when: Before a destructive change, prove that backups, compatibility, and rollback work. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): No single official standard controls the whole term. Its meaning may change across teams, platforms, or frameworks. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Check this request
Review the current use of Database Migration. Definition: A database migration is a versioned change. It moves stored data and its schema from one known state to another. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, report the evidence you found, gaps, severity, and the smallest safe fix.