Ghost 5 + MySQL 8, what specific functionality?

Curious: have any of those other pieces of software looked to drop support for MySQL 5 or start leveraging MySQL-8 specific functionality?

Also consider, most of those other piece of software are aimed at a technical audience & live in different ecosystems (e.g. PHP) where database interoperability is more mature and/or has more people contributing fixes around it.

Until recently, MariaDB and MySQL were so similar that you could drop in MariaDB without concern. That has changed, MariaDB has diverged from MySQL and that’s a decision and a course being set out by MariaDB, not by us.

MySQL5 is about to go EOL, so it’s a good time to get everyone to think about upgrading to MySQL8. With that comes some very beneficial features, of which the biggest and most obvious is JSON support.

Meanwhile, we are very aware that knex - the defacto tool in the Node.js ecosystem for handling database interoperability - isn’t getting enough traction or contributions. This means that minor divergences between MySQL and MariaDB, or even MySQL and SQLite3 are not handled correctly. Unfortunately as we’ve seen a lot recently, when there are bugs in knex, there’s an expectation from Ghost users that the Ghost team will fix them.

What we’ve done with Ghost 5 is draw a very clear line in the sand. We will continue to merge all upstream changes from knex, and there is nothing preventing you from using MariaDB, but we do not test against it, and we will not take responsibility for bugs that appear in knex when using MariaDB (or SQLite3 in production scenarios). We will also freely make use of MySQL8 only features as and when we need them.

If the community wants to keep MariaDB support going by contributing fixes and patches to knex so that MariaDB works or has graceful fallbacks in all these scenarios, that’s totally possible because Ghost and all the tools it depend on are OSS. I personally would love to see knex get more contributors.

4 Likes