Adding a new column should be simple. In SQL, it’s a small ALTER TABLE statement. In production, it can be a minefield. The moment you add or change a column, you touch storage, queries, caches, and sometimes downstream systems you didn’t even know existed.
The first rule: decide on column type and constraints before it ever hits the database. Size matters. Nullable or not nullable matters more. A nullable column can save a deployment but hide bugs. A non-null column forces every insert to supply a value, which means every client hitting that table needs to be ready.
Second: avoid blocking migrations. Large tables with millions of rows can lock for minutes or hours depending on the engine. MySQL, PostgreSQL, and others have features or extensions to do online schema changes. Use them. For PostgreSQL, ALTER TABLE ... ADD COLUMN is usually fast for nullable columns with no default. But adding a NOT NULL with default will rewrite the table. Know the cost before you run it.