A new column sounds simple. In SQL, it’s just ALTER TABLE ADD COLUMN. In production, it’s often more. Schema changes can block writes, lock tables, or trigger index rebuilds. Every millisecond counts when your users expect zero downtime.
Before adding a new column, analyze the table size. On large datasets, run the change in a background migration. Use features like NOT VALID constraints or NULL defaults to avoid full table rewrites. For MySQL, consider ALGORITHM=INPLACE or ALGORITHM=INSTANT if available. In Postgres, adding a nullable column without default is near-instant, but adding a default can still rewrite the table on older versions.
If the column changes query logic, deploy code that ignores it until the schema is ready. This avoids race conditions between app and DB. Roll forward, never backward. Write migrations to be idempotent for reruns during CI/CD or rollback testing.