As features are added, changed or deleted, the data model used by an application usually changes as well. For most database-backed applications, this means migrations are needed.
With this in mind, the fundamental goal of database migrations:
The current database schema should match the currently running code.
However, achieving …