Adding a new column is one of the most common schema changes in modern applications. It sounds simple, but it can lock tables, slow queries, and break code if done wrong. In high-traffic systems, careless changes can trigger outages and lost data.
Start with the reason. Why do you need the column? Define its type, constraints, and default values before writing a single migration. Use migrations that are reversible. Test them locally and in staging against realistic data volumes.
For large datasets, prefer online schema changes. Tools like Liquibase, Flyway, or native ALTER TABLE with concurrent options can reduce locking. Pay attention to indexes—adding one with the new column can double the performance gain, or double the downtime if handled badly.