Data outlives the applications that created it, and it carries years of quirks: duplicate keys, free-text fields used for codes, dates in several formats. Schema migration is where hidden assumptions surface.
Checklist
- Profile the data before design: nulls, duplicates, orphans, odd values.
- Map each field and rule, with an owner for each decision.
- Migrate in rehearsals, comparing counts and checksums each time.
- Plan for coexistence — both systems may need the data for a while.
- Rehearse the rollback.
Reconciliation is the evidence. If you can't prove totals and counts match, you haven't finished.