procrastinate
procrastinate copied to clipboard
[v3] Migrations backwards compatibility
According to our own doc, migrations named with version X are the migrations you can apply once you run on version X. According to our doc, people on v2.13 wishing to upgrade without disruption would:
- Change the code to v3.0
- Apply the v3.0 migrations
- Change the code to v3.1
- Apply the v3.1 migrations All the while their instance is running and processing jobs.
Compatibility matrix:
| Code ➡️ ⬇️ Schema |
v2.13 | v3.0 | v3.1 |
|---|---|---|---|
| v2.13 | ✅ | ✅ | ❌ |
| v3.0 | ❌ | ✅ | ✅ |
| v3.1 | ❌ | ❌ | ✅ |
❌ means we don't have to make it compatible, but if it happens to be, it's not a problem, of course
We need to decide what we put in v3.0 and v3.1
Note: the change of status = aborting -> abort_requested might need a couple of trigger just for the time of the dual compatibility (adding the `abort_requested column and update its value based on the status, then add a trigger that synchronizes the 2 columns, and in the next release, delete the triggers and the column)