Closed lammel closed 11 months ago
It's not so hard to have array-like things or even JSON object-like thing: Just need more tables, which will affect performance. We're not required to keep the same schema as the Pg backend.
We already fixed/broke a bunch of things with the TIMESTAMP
columns that aren't backwards-compatible before 5.6, so 5.6 is our current minimum version (5.6.5 I think even, that's what our tests declare).
Well, then I'm going to update the MySQL migrations based on MySQL 5.6 / MariaDB 10.1. For array-like usage, we can simply use a many-to-many relation (parents of a job), which should still allow for good enough performance.
For the JSON stuff, I'm not sure how we can handle that apart from using a text only string (VARCHAR or TEXT) and handling the results in perl.
Work will be based on the fix-features branch.
What JSON querying support does the backend require?
To upgrade the database schema to a recent version matching the schema handled by Minion::Backend-Pg the JSON related functions and storing array must be supported (ENUM should not be an issue).
This would mean that the minimum supported MySQL version would have to be raised to MySQL 5.7 / MariaDB 10.2 which would be rather new and limit adoption.
On the other hand it would be hard to achieve feature parity without using a newer version.
This ticket is meant to decide on the minimum supported MySQL/MariaDB version.