Adding a new column is one of the most common schema changes. It is also one of the easiest ways to break a deployment if you treat it as harmless. At small scale, ALTER TABLE feels instant. At production scale, on a live system, it can lock writes, block queries, or cause replication lag. The wrong approach can take down a critical service.
Before you add a column in production, understand the constraints of your database engine. In PostgreSQL, adding a nullable column without a default is instant. Adding one with a default rewrites the entire table on older versions. In MySQL, the behavior depends on storage engine and version. Test the migration on real data in a staging environment. Measure how long it takes and its effect on locks.
When introducing a new column, keep the deployment atomic but safe. Create the column first, then backfill in batches if you must. Apply defaults in a later step. Update your application code to handle both old and new schema during the transition. This avoids downtime and gives you rollback options.