The database waited for its next change. A new column. Simple, but decisive. One line in a migration could alter performance, schema integrity, and the shape of every query downstream.
Adding a new column is never just an update. It changes contracts between services, affects serialization, and requires precise handling in both application code and storage. The choice between nullable or non-nullable defines future data health. Naming it well avoids ambiguity for years. Default values, indexing, and constraints are not optional details—they are the difference between smooth rollout and rollback at 3 a.m.
In SQL, the process is clear but unforgiving:
ALTER TABLE users ADD COLUMN last_login TIMESTAMP NULL;
On large datasets, this can lock tables and block writes. In production, you need migration strategies that minimize downtime. Online schema change tools, careful batching, and compatibility updates in code let you ship without breaking APIs.