Adding a new column seems trivial, but it can break production if done wrong. Schema changes are high-risk because they touch live data paths. A careless ALTER TABLE on a large table can lock rows and block queries. Even a small column can cause outages when added without a plan.
To add a new column safely, start with a migration strategy that matches your database. On PostgreSQL, adding a nullable column with no default is instantaneous. Setting a default or making it non-null requires a rewrite. MySQL behaves differently depending on storage engine and version. Always benchmark the schema change in staging with production-size data before deploying.
Use feature flags to separate schema deployment from application feature release. First, deploy the new column in a way that does not impact running queries. Then deploy application code that writes to the new column. Finally, backfill the data in batches during low-traffic windows. Large sets should be updated in controlled loops, with transaction sizes tuned to avoid lock contention.