Adding a new column sounds simple. In production, it can be dangerous. The wrong approach locks tables, slows queries, or breaks deploys. The right approach keeps your application online and your users unaware anything changed.
A new column in SQL starts with ALTER TABLE. For small datasets, it runs instantly. For tables with millions of rows, it can block writes and cause downtime. This is why many teams run migrations in stages. First, add the column as nullable. Then backfill in batches. Finally, set constraints or defaults.
Schema changes must also match application code changes. Deploy code that can handle both old and new states. Roll forward without blocking. This means feature flags, conditional logic, and deploy pipelines that sequence migrations before or after releases as needed.