Database
Schema Migration Safety: Testing Zero-Downtime Database Changes
* Use the expand/contract pattern: never rename or drop in a single migration * Test backward compatibility by running old app code against the new schema before cutover * Shadow tables let you verify data integrity without touching production reads/writes * Index migrations must be tested for lock acquisition time, not just