Adding a new column is simple in concept, but in production it can break APIs, jobs, and dashboards. A schema change is a live event. Every query, write, and index feels it. That is why the process must be precise.
A new column in SQL starts with ALTER TABLE. The safest approach is to add the column as nullable, backfill in controlled batches, then update constraints. This prevents write locks from blocking traffic. In systems under load, avoid heavy synchronous updates. Instead, use migrations with phased rollouts.
Think about default values. Setting a default on creation will write that value to every row immediately. On large datasets, that is dangerous. Create the column without the default, backfill, then apply the default as a separate step.
Remember that application code must be ready for the new column. Release code that can handle both the old and new schema before running the migration. This is the essence of zero-downtime deployment.