Design the intermediate states, not just the final schema.
What to look for
- 01
Add compatible structure before requiring it.
- 02
Teach the application to handle the transition.
- 03
Backfill and verify existing data before tightening constraints.
Keep in mind
Compatibility is a deployment technique, not permission to retain obsolete paths indefinitely. Retire transition code once old versions are gone.
Try this next
For the next migration, write down what both the old and new application versions do at each step, including rollback after a partial backfill.
Get the data templateNotes and exercises by Awesome CTO. The original work belongs to Michael Brunton-Spall.