Adding a new column is one of the most common schema changes. It looks simple. It rarely is. A clean migration prevents downtime, data loss, and broken dependencies. A sloppy one ripples across every query, index, and API that touches that table.
The first step is defining exactly what the new column needs to store. Choose the smallest data type that supports the requirements. This keeps storage lean and improves performance. Avoid nullable columns unless the absence of a value is truly valid.
Before modifying the production schema, run the migration in a staging environment with realistic data. This will reveal performance issues, lock contention, or unexpected query plan changes. In large tables, adding a column can trigger long locks unless handled with online DDL or phased rollouts.