The table is ready, but the schema is not. You need a new column, and you need it without breaking production.
Adding a new column in a live system is routine, but it is also a point where databases break. The operation touches storage, indexes, constraints, and often application code. Adding the wrong type or constraints without planning can lock tables, slow queries, and trigger outages. The right approach is controlled, tested, and minimal in impact.
In SQL, the common method is:
ALTER TABLE users ADD COLUMN last_login TIMESTAMP;
This runs instantly on small datasets, but large tables can be locked during the change. PostgreSQL, MySQL, and other engines offer different optimizations; some allow adding nullable columns without rewriting the whole table. Avoid default values on huge writes unless the database supports fast path operations.
Plan the migration in stages. First, add the nullable column. Then backfill data in small batches. Finally, enforce constraints or set defaults after the data is in place. This avoids downtime and keeps load predictable.