A new column sounds simple. But it can break production if you miss the details. Adding one without downtime takes planning. Schema changes must be safe, fast, and reversible. That means running migrations that don’t lock tables for long, don’t block writes, and can be rolled back without corrupting data.
Start by defining the new column with defaults that don’t trigger a full table rewrite. In PostgreSQL, avoid ALTER TABLE ADD COLUMN ... DEFAULT <value> when possible, as it rewrites the entire table. Instead, set the column as nullable, deploy, then backfill values in small batches. Once populated, alter the column to set the default and add constraints.
For MySQL, watch out for operations that require a full table copy. Use ALGORITHM=INPLACE when supported. Test on staging with production-level data volumes before trying it live. The schema should evolve without locking critical paths.