Adding a new column is more than altering a table. It touches queries, indexes, APIs, caches, and downstream systems. Done right, it can ship in minutes. Done wrong, it breaks production.
Plan the change. Start by defining the column name, data type, nullability, and default values. Choose names that reflect intent, not just format. Pick types that match the scale—INT vs. BIGINT, VARCHAR vs. TEXT. Avoid nullable fields unless they are truly optional.
Run migrations safely. Use transactional DDL if your database supports it. In systems like PostgreSQL, ALTER TABLE ... ADD COLUMN is fast, but defaults with non-null values can lock the table. In MySQL, watch out for table rebuilds. For massive datasets, run additive migrations in zero-downtime mode—add an empty column first, backfill with batched updates, then apply constraints.