The table needs a new column. Code halts until it exists. You unlock the schema, write the migration, ship it, and hope it doesn’t break production. Adding a new column should be simple. In practice, it often becomes a friction point that slows releases and risks downtime.
A new column impacts data integrity, query performance, and application logic. In relational databases, adding it requires schema changes that must be coordinated across services. If the table is large, adding a column can lock writes and block reads. On distributed systems, that lock can cascade. Without a safe deployment process, you risk outages.
In SQL, the command is straightforward:
ALTER TABLE users ADD COLUMN last_login TIMESTAMP;
The challenge is in timing and migration strategy. You need to ensure application code handles null values until the column is populated. Indexes must be considered. Default values can cause a full table rewrite. For high-load environments, this can be catastrophic.