Adding a new column in a live production database is not just about ALTER TABLE. It is about migrations, constraints, indexes, and how your data pipeline reacts. Getting it wrong can lock your tables, block writes, and break downstream systems.
First, decide if the new column is nullable or has a default value. A NOT NULL column without a default will fail if rows already exist. Adding defaults to large tables can trigger a full table rewrite, which can cause downtime. If you need zero downtime, create the column as nullable, then backfill data in small, controlled batches before adding constraints.
Second, confirm your application code is ready to handle the new column. Deploy code that can write to, and optionally ignore, the column before running the migration. This avoids mismatch errors when schema and code are out of sync.