Category: Software, Database, Data, github

Database migrations are essential for the development of an application to progress and scale in any meaningful way. For me, migrations being stateful means that looking at any database, you can tell what ‘state’ the database is in; that is, what migrations have been applied to it so far.

In the sense that looking at the history table of migrations, there’s no way to tell if certain data changes were applied.

It also means that data changes stay out of the way of, and are quite distinguishable from, schema changes.

For data migrations that should only be applied to a specific environment (think test data for a test environment or dummy login credentials for dev), the same tradeoffs between versioned and repeatable migrations apply.

Related Articles