Adding a new column to a database table is simple on paper. You define the name, the data type, and any constraints. But in a live system, timing, indexing, and backward compatibility matter. The schema change must not block queries or cause downtime. Even a fast ALTER TABLE can lock writes.
Plan the new column like any other deployment. Start by profiling the size of the target table. On large datasets, adding columns with default values can trigger a full table rewrite. Use NULL defaults or staged migrations to reduce impact. Consider creating the column first, then backfilling data in small batches.
When working with distributed systems, coordinate schema changes across services. Code that reads or writes to the new column should be deployed after the column exists, but old code must keep running without it. This means feature flags and careful sequence control. Always test migrations in staging with production-like data volumes.