Ensure migrations work with real data
We currently can't update a lot of boxes because of #626 (closed). We need to do better in the future, and try hard for this situation to not happen again.
One thing we could do is have the CI run something like this:
git checkout $TAG_OF_LATEST_RELEASE
python manage.py migrate
# import some data, representative of what a box could have
git checkout $BRANCH_OF_THE_PULL_REQUEST
python manage.py migrate
This certainly won't catch all issues. It will only be as good as the data we load into the database.
But if it helps finding some broken migrations, then it's already a good thing.
And we can make that data more and more comprehensive with time, so that it keeps getting better at finding our mistakes.