The data shifts. You need a new column.
Adding a new column is one of the most common changes in database work, yet it’s often done without thinking about performance, migration safety, or future schema flexibility. When a system grows, columns stop being simple—they become commitments you can’t break.
A new column can store fresh data. It can power new features. It can index faster queries or enable analytics you couldn’t get before. But if you add it poorly, it can lock your system into constraints that are hard to unwind.
Start with the schema. Know your database engine: PostgreSQL, MySQL, SQLite. Each handles ALTER TABLE differently. Some data types can be added instantly; others require table rewrites. Plan your column type based on exactly what will be stored—no larger than needed. A VARCHAR(255) might waste space. A BOOLEAN is lean.
Migration matters. In production, a blocking ALTER can stall writes and reads. Test every migration path. Use non-blocking migrations when your database supports them, such as adding a nullable column first, backfilling data in batches, and then setting constraints.