Adding a new column sounds simple. In production, it can break everything. Schema changes touch critical paths. They lock tables, block writes, and slow reads. Queries fail if the application expects data that doesn’t yet exist. Large datasets make it worse.
The safest way to add a new column starts with planning. Decide if the column needs a default value or nulls. Avoid adding a default on big tables; it forces a rewrite. Create the column first, then backfill in small batches. Use ALTER TABLE ... ADD COLUMN in an online migration tool if your database supports it.
For PostgreSQL, adding a nullable column is instant. Adding with a constant default rewrites the table. For MySQL, use ALGORITHM=INPLACE when available. Always monitor execution time and replication lag.