Adding a new column sounds simple. In production, it can be volatile. The wrong migration locks tables. The wrong defaults block writes. Schema changes can ripple through services and APIs. The stakes are high because schema defines truth, and truth must stay online.
The safest path starts with explicit naming. A new column should match your current schema conventions. Decide on type, size, and nullability before writing the migration. A clear ALTER TABLE statement works, but some systems support online schema changes. MySQL users have pt-online-schema-change. Postgres has ALTER TABLE ... ADD COLUMN with default values applied later in a backfill step.
Backfilling large datasets is often the costliest step. Use batched updates. Monitor query performance as the new column fills. Check indexes — adding a column rarely needs an index on day one. Wait until you see actual usage patterns before committing storage and CPU to indexing.