Adding a new column can be trivial or catastrophic. The difference comes down to how you handle schema changes in production. The goal is zero downtime, no data loss, and no blocked requests.
First, define the purpose of the new column. Decide its data type, nullability, and default value. These choices shape how the migration runs. A nullable column with no default is often the fastest to add, but you may need a backfill later. Setting a default triggers a table rewrite in some databases. Know your engine's behavior before you execute.
Second, choose the right migration strategy. On smaller datasets, a direct ALTER TABLE is fine. On large, high-traffic tables, consider an online schema change tool like gh-ost or pt-online-schema-change. These tools create a shadow table, copy data in chunks, and swap with minimal locks.
Third, plan for backfilling. If the new column needs historical data, run a background job that updates rows in batches. Avoid long transactions. Monitor replication lag if you run replicas.