Adding a new column should be simple. In reality, it can be the place your system cracks. Schema changes touch production. They hit stored procedures, indexes, migrations, API payloads, and test coverage. One missed reference and the deploy fails. Or worse, it passes and corrupts data you can’t get back.
A new column is more than an ALTER TABLE statement. It’s about safety, rollback paths, and zero-downtime. In PostgreSQL, ALTER TABLE ADD COLUMN can be fast if you add it with a default of NULL. But a default with a value will rewrite the entire table and lock writes. In MySQL, even simple column adds once meant full table copies, though modern versions with ALGORITHM=INSTANT reduce that pain. SQLite? Every change rewrites the table file.
Plan the migration. Add the column without defaults. Backfill data in controlled batches. Index later if required. Update code to handle both old and new shapes during the rollout. Version your API responses if external consumers depend on them. Stage changes in an environment that mimics real production size, not an empty test DB.