Adding a new column should be simple. In most systems, it begins with a schema change, using ALTER TABLE to define the name, type, and constraints. For example:
ALTER TABLE users
ADD COLUMN last_login TIMESTAMP DEFAULT NOW();
This operation updates the database metadata, extending the table structure without rewriting existing rows. But if the dataset is large, the impact on performance and availability must be planned. On some engines, such as MySQL with older storage engines, adding a column can lock the entire table. On others, like PostgreSQL with metadata-only changes for nullable columns, it is almost instant.
A new column is not just a piece of schema—it changes the contract between storage and application. API layers, ORM models, and ETL pipelines all need to adapt. Missing one update creates mismatches, resulting in null data, broken reports, or failed writes. Tracking the change end-to-end ensures consistency.