A database schema is only as strong as its ability to evolve. Adding a new column is one of the most common changes, yet it can be the most dangerous if done carelessly. Schemas are living systems. A single column can shift query plans, introduce null-handling gaps, or break integrations you forgot existed.
A new column changes the contract between data and application code. If the column is non-nullable, you must backfill existing data before the change. If it has a default value, know that not all databases apply defaults the same way. In PostgreSQL, adding a column with a constant default can lock the table during backfill. In MySQL, the cost depends on engine and column type.
Performance is not the only concern. Migrations that add columns in production should account for reads, writes, replication lag, and any ORM-level assumptions. Deploying without a guardrail means risking downtime. Safe rollouts often require a three-step migration: add the column as nullable, deploy code that writes to it, and only then make it non-nullable with constraints.