A single table change. A missing new column. And now the pipeline was red.
Adding a new column should be simple, but in many systems it’s the start of a chain reaction. Schema migrations drift. Deploys block. Old code paths still assume the column doesn’t exist. The fix is never just one line. It’s planning, applying, and verifying under real production rules.
A new column starts with the database. Decide on the type. Set defaults if you must. Avoid NOT NULL until you’re sure existing data fits the constraint. In version-controlled migrations, keep each change atomic. Every commit should be runnable forward and backward without risk.
Test the migration against a copy of production data. This catches type issues, constraint conflicts, or performance regressions. Lock-time during ALTER TABLE can bring down high-traffic services, so plan for online schema change tooling or phased rollouts.