Adding a new column sounds simple. In production, it can be a minefield. The wrong migration can lock tables, cause downtime, or break queries. The right approach is planned, tested, and deployed without impact.
Start with the schema. Decide if the new column is nullable, has a default value, or needs an index. Adding a column with a default in one step can rewrite the entire table, blocking writes. Instead, create the column as nullable, backfill in small batches, then enforce defaults or constraints.
For high-traffic systems, pick a migration strategy that matches load patterns. Online schema changes, zero-downtime migration tools, and feature flags work together to keep deployments safe. Monitor query plans after the change; new columns can shift optimizer behavior, especially if joins, filters, or aggregations touch the new data.