One line in your migration adds a new column, and the weight of your data model changes.
A new column can expand capabilities or introduce complexity. It is not just extra storage. It is another dimension in your queries, indexes, and constraints. It can affect performance in ways you do not see until production is under load.
Before adding it, define the column type with precision. Choose data types that fit the data now and scale well later: integer for counters, text for freeform strings, timestamp for events. Avoid types that hide data size limits.
Decide if the new column should be nullable. Nullability changes join logic. It affects how defaults work. Set a default where possible, and ensure it matches operational reality. When the column stores critical data, make it NOT NULL to enforce integrity at the lowest level.
Update indexes with caution. Adding an index for the new column can improve query speed, but every index slows writes. Measure the cost. Only index if the column will be used in real queries.