The table waits. The schema is fixed. Then the requirement changes. You need a new column.
In most systems, adding a column should be simple. In production, it can be dangerous. Schema changes lock tables. They block writes. They break queries if deployed carelessly. The new column you add for one feature can slow the entire application if you don’t plan the migration.
Before you add a new column to a database table, decide its type and constraints. Make it explicit: NOT NULL or nullable? Default value or no default? Every choice shapes performance, storage, and future queries. Adding a column with a default on a large table can cause a full table rewrite. This turns what should be a quick DDL change into hours of blocked writes.
Best practice: run migrations in a way that avoids downtime. For PostgreSQL, adding a new nullable column without a default is fast. Adding an indexed column is not. For MySQL, be aware of storage engine behavior. Some ALTER TABLE commands copy the table. Use online schema change tools for safer deployments.