One command, one migration, and your database structure is no longer the same. A new column can extend a model, enable a feature, or fix a bad schema decision. It is the smallest change that can carry the most risk.
When you add a new column, you change data shape. You alter queries, indexes, joins. You may trigger unexpected nulls or break code paths that assume a fixed schema. In production, a poorly planned new column can slow reads, lock tables, or cascade into downtime.
Plan before you write the migration. Name the column so it’s clear and predictable. Choose the data type with intent—don’t default to text when the domain requires integers, enums, or timestamps. Set nullability rules from day one, and apply constraints to enforce them.
For large tables, add the new column in a safe way. Use an online migration tool or schedule the change at low traffic times. If the column needs a default value, set it without blocking. Backfill data in batches to avoid long transactions.