True migration testing

Summary

For properly testing whether a migration works, we need a true migration difference test.

To do this, I propose to implement a test that does the following:

  1. Checkout development, run a test that sets up a filled database as much as possible.
  2. Checkout the current commit, run a smoketest using the same database as in step 1 to see whether the migration does not fail during start.

Reasoning

Currently, changes that do not have data associated to them do not act the same changes that do. Often, a migration could turn out to be incorrect when there is actual data in the columns they require.