Adding a new column should be simple. But in production, with live traffic and tight SLAs, every schema change carries risk. A blocking migration can lock writes. An unindexed addition can slow queries. The wrong type can force expensive casts across millions of rows.
To add a new column safely, start by analyzing read and write patterns. Determine if the column can be nullable or must have a default. In Postgres, a nullable column without a default is fast to add because it only updates metadata. In MySQL, the impact depends on the storage engine and version. Check your database’s exact behavior before you run the statement.
Migrations must be idempotent and reversible. Version control them along with application code. Deploy them with safeguards, and test the full cycle in a staging environment that mirrors production size and performance.