ie. from v0 -> v2, from v5 -> v6, from v0 -> v6
creation/deletion/modification of tables
internal migrations of data
ex. breaking a “full name column” into a “first name” and “last name” column
One of the main roles of API services is to black box persistence layers. Getting a DB into a workable state is part of that role.
good protection around developer errors
crashes on code being behind the DB version
crashes on developers making changes to past migrations that have already been run
(crashing is good here)