A new column can change everything. One field, one name, one type—and the shape of your data shifts. Rows fall in line. Queries return differently. Dependencies you forgot existed start to crack. The smallest migration can ripple through your system faster than you expect.
Creating a new column is simple in syntax but hard in discipline. In SQL, you write ALTER TABLE users ADD COLUMN last_login TIMESTAMP; and think the work is done. It isn’t. You have to define nullability. Decide on defaults. Handle existing rows with care. Map how this column affects indexes, constraints, and triggers.
Performance is a factor. Adding a new column with a default value in large tables can lock writes for seconds or minutes. Some databases rewrite the entire table. Others use metadata-only changes. Learn the behavior of your engine before running this in production.
Schema migrations need to be reversible. If a new column causes an issue, you should drop it without risking data loss. Test this path in staging. Document the migration so a teammate can read it months later and understand why the column exists at all.