A new column sounds simple. You run an ALTER TABLE command, add the field, deploy, and move on. Yet in production systems, this step can trigger downtime, lock tables, or cause migrations to hang for hours. The wrong approach can create cascading failures across services.
The first decision is schema change strategy. Online migrations, performed with tools like pt-online-schema-change or native PostgreSQL features, let you add a column without locking writes. For tables with high write volume, this is non‑negotiable. Always test migrations against realistic copies of production data to measure impact.
Next is default values and null handling. Adding a new column without proper defaults can break application logic. Decide if the field can be nullable or if you need backfill scripts. Avoid large, synchronous backfills during deploy—batch updates reduce load and preserve uptime.