The table needed a new column. One field to unlock a feature, fix a query, or track a metric that was invisible until now. You add it, run the migration, push to production. Simple in theory. Risky in practice.
A new column changes data models. It changes indexes, queries, and downstream jobs. It can slow a hot path if the schema update locks rows or rewrites too much data. It can break ETL pipelines that expect a fixed schema. It can skew reports if the default values change historical context.
Design it before you run it. Pick a name that is descriptive and future-proof. Define the type with precision. Use NULL deliberately. Defaults should be fast to apply—avoid full table rewrites on large datasets. Test the migration on realistic data snapshots. Benchmark read and write performance after adding the column.