A new column sounds simple. In SQL, it’s one ALTER TABLE statement. In production, it can be the difference between a clean deploy and a night spent watching a stalled migration eat your write throughput. Adding columns changes storage layout, impacts indexes, and can lock tables. That’s why the way you add a column matters.
Before adding a new column, decide on nullability and default values. A NOT NULL column with a default will rewrite every row. On large tables, this can cause hours of lock contention and replication lag. If you must add it, consider doing so in two steps: first add the column as nullable, then backfill in small batches, then apply constraints.
Pay attention to how the ORM generates migrations. Some automatically inline default values into the DDL, triggering a table rewrite. Others run unsafe schema changes without transactional safeguards. Always inspect the generated SQL.