A new column can break or save a system. The change is small in code but heavy in consequence. Schema edits touch data, queries, indexes, and uptime. One wrong move can lock tables, block writes, and throw errors in production.
Design a new column with intent. Define the type, constraints, and defaults before it hits the migration script. Decide if it allows nulls. Decide if it needs an index. Think about how it interacts with existing queries. Test on a copy of production data to see performance impact.
In deployment, avoid long locks. Many systems add new columns with NULL defaults first, then backfill data in batches. This reduces transaction time and avoids blocking. If you must add an indexed column, build the index concurrently if your database supports it. Always run migrations during low-traffic windows unless your process is truly online and safe.