A new column sounds simple. It isn’t. In production, every schema change is a risk. Databases lock. Queries stall. Connections stack up. The wrong approach can bring down an entire service. The right approach makes it invisible to the user.
To add a new column safely, start with a clear plan. Decide if it’s optional or required. If it’s required, first deploy it as nullable with a default. That avoids blocking writes while the schema updates. Populate the data in small batches to prevent spikes in load. Once data is backfilled, run a migration that sets the column to NOT NULL if needed.
Use tools that match your database engine. For Postgres, ALTER TABLE ... ADD COLUMN is fast when adding a nullable column without default. MySQL has similar behavior for certain column types, but verify for your version. In both cases, test against production-scale data before touching the live system.