Non-breaking migration process
We should set up a non-breaking migration process.
This means we should strive to minimize the downtime for the migrations.
Preferably, the process should behave as follows:
- Run the migrations that will not break old code
- Swap old code with new code
- Run migrations that will not break current code, while new code is running