Adding a new column is common, but doing it right matters. In production, the wrong approach can lock tables, spike CPU, and block writes. Done well, it’s seamless. That means knowing the engine’s behavior, the migration path, and how your ORM interprets the change.
In PostgreSQL, ALTER TABLE ... ADD COLUMN is instant for nullable fields with defaults set to NULL. But the moment you set a non-null default, the database rewrites the table. That breaks speed. Instead, add the column nullable, backfill in controlled batches, then apply ALTER TABLE ... SET NOT NULL. MySQL has similar patterns but different execution details depending on the storage engine.
In distributed systems, schema changes hit another layer: data replication lag and version compatibility. Rolling out a new column requires application code that can handle its absence in older replicas. Feature flags help control read/write paths until the migration completes.