Adding a new column should be fast, predictable, and safe. Done right, it improves data models, unlocks new queries, and enables cleaner application logic. Done wrong, it can lock up production systems or corrupt live data. The difference comes down to planning, atomic migrations, and choosing the right alter strategy.
A new column changes a schema, so start with clear requirements. Decide the column name, data type, default value, and whether it allows nulls. Avoid unnecessary constraints at the start. Keep schema evolution minimal and incremental.
In relational databases like PostgreSQL and MySQL, adding a new column without a default on large tables is usually instantaneous. Adding a default or a NOT NULL constraint can rewrite the whole table, which is costly. To prevent downtime, consider adding the column first, backfilling in batches, and then applying constraints in a later migration.