Adding a new column should be simple. The precision is in doing it right, without locking tables or losing data. In production, even small schema changes demand care.
A new column begins with clarity: define its name, type, constraints, and default values. Know how it fits into existing queries. Audit every dependent service and job that touches the table. Ignore this and you risk errors spreading through the stack.
In SQL, you can add a column with:
ALTER TABLE users ADD COLUMN last_login TIMESTAMP;
On Postgres, ALTER TABLE is fast for metadata-only changes. But adding defaults or populating historical data can cause a full table rewrite. That means downtime unless you approach it in phases: add the column without defaults, backfill in small batches, then set the default and constraints.