The new column was live, but the data was wrong. You scanned the migration, scrolled the schema, and saw the cause. A single change had rippled through the system. Adding a new column is simple in theory, but in production it can break joins, slow queries, and bring down endpoints if done carelessly.
When you add a new column to a relational database, every decision matters: column type, default values, nullability, and indexing strategy. Picking the wrong type can inflate storage or cut performance. Skipping a default forces the application to handle missing data. An unnecessary index can waste memory, while no index can lock your application into full table scans.
Schema migrations must be planned for zero downtime. Use transactional DDL if supported. For large tables, consider adding the new column in stages: first add it without constraints, then backfill, then enforce defaults and keys. Monitor query execution time before and after the change. Test every affected query path. The silent failures happen when downstream code assumes the column always has valid data.