RFC: Switch to utf8mb4, raise DB requirements

Hi there,

with https://github.com/neos/flow-development-collection/issues/1268 and the related PRs, we could finally have real support for all of UTF-8 on MySQL. I have two things to ask:

Please test this, since Travis CI will fail for the Neos part of those changes, unless everything is merged. There are just a lot of interdependent changes. So it’d be great, if you could test this. Check out the branch(es) in an existing demo site, run ./flow database.setcharset and see if it works. Try the same in any other setup you can.

Can we raise DB requirements, please? For this to work we need at least MySQL 5.7.7 or MariaDB 10.2.2 to avoid key length issues with the new charset. MariaDB 10.2.2 was released on 2016-09-27, MySQL v5.7.7 on 2015-04-08). So we could just update the minimum DB versions, with PHP 7.1 being required and 2018 being a quarter in, that seems appropriate to me.

And if you wonder why we need this? One word^Wemoji: :rocket:

Installed fresh Neos master, added all PRs. and setup as usual. A picture is worth a thousand words…

YAY, thanks <3


Just to play this through with an existing installation I would run ./flow database.setcharset to get the new charset. How about migrations, do I run them before or after? I guess that’s important. And how about existing migration files. Do they need to be adapted in own packages backwards to the beginning of time like in the flow change?

Run database:setcharset first, then doctrine:migrate. And yes, needs to be adjusted in your own migrations as well, like back in the days. Of course, when you do not intend/need to migrate up involving any of the already applied migrations…

I can’t remember if we had a core migration for old DB migrations back then, but it would be easy to add, I think.

1 Like

:+1: for raising DB minimum version