The schema change drops into your database like a new piece of metal in a running engine—everything keeps moving, but now the shape is different. You commit it, you run the migration, and in an instant the data model has shifted. A new column can store a missing value, enable a fresh feature, or connect to an upstream service that did not exist yesterday.
In SQL, adding a new column seems simple:
ALTER TABLE users ADD COLUMN last_login_at TIMESTAMP;
The command returns fast. But in production, a new column can carry hidden cost. On large tables, locks can block writes. If NULL defaults are wrong, queries can slow under the weight of unnecessary indexes. Databases like PostgreSQL, MySQL, and SQLite each handle ALTER TABLE differently. Knowing these details means fewer outages and faster deploys.
A new column is often the start of a larger change. Adding one for analytics may lead to new ETL jobs. Adding one for authentication could force code paths to branch. Delete the wrong default and you may trigger application errors in code that assumes the column exists or has certain values.