A new column is not just an extra field in your table. It changes how data flows, how queries perform, and how systems scale. The wrong approach triggers downtime, locking, or corrupted reads. The right approach makes the change invisible to the end user.
First, make the schema migration forward-compatible. Add the column without removing or altering existing ones. Use nullable defaults or backfill in a background job. This keeps application writes safe during deployment.
Second, deploy in phases. Push the database migration first. Then deploy application code that writes to and reads from the new column. Remove old paths in a final cleanup migration. This staged rollout prevents race conditions between versions of your service.