Adding a new column is simple in theory. In production, it’s a test of precision. Done wrong, it locks tables, slows queries, and can block deploys. Done right, it’s invisible to the end user and critical for feature delivery.
The first step is to understand the schema impact. In most relational databases, ALTER TABLE operations can trigger a full table rewrite. For small datasets, this is fine. For tables with millions of rows, it can mean seconds or minutes of blocked writes. For Postgres, consider ALTER TABLE ... ADD COLUMN with a DEFAULT NULL first. This avoids the rewrite. Set defaults in application code until backfills complete.
For MySQL, especially with InnoDB, ALTER TABLE can be online if the storage engine supports it. But test the migration in a staging environment with similar table size and indexes before executing it in production. Validate indexes, triggers, and constraints because a new column can break code paths that rely on explicit column lists.