Adding a new column to a live database is simple in theory, dangerous in practice. Alter statements can lock tables. Queries can spike CPU and stall writes. The wrong approach turns a safe deploy into downtime.
First, decide if the new column is nullable or has a default value. A nullable column adds instantly on most engines. A default with no computed value is also cheap. Adding a non-nullable column with a default in large tables can rewrite every row. That means heavy locks.
Second, consider schema migration tools. Use additive changes first. Add the new column. Populate data in batches. Backfill through background jobs or scripts. Only mark it non-null when the data is complete. Avoid combining DDL and DML in one massive transaction.
Third, watch your indexes. Do not build an index on the new column in the same migration unless you can afford the lock. Build indexes in separate steps, during low-traffic windows, or use online index creation features.