NathanVaughn / webtrees-docker

Up-to-date Docker image for webtrees with all the bells and whistles.
https://hub.docker.com/r/nathanvaughn/webtrees
MIT License
64 stars 15 forks source link

Database utf8_unicode_ci collation not supported #145

Open packman2008 opened 6 months ago

packman2008 commented 6 months ago

I'm trying to migrate my install of Webtrees from a standalone webserver into a Docker Swarm environment. The stack runs but when I try to create the database in the setup wizard I get:

SQLSTATE[HY000] [2054] Server sent charset (0) unknown to the client. Please, report to the developers (SQL: CREATE DATABASE IF NOT EXISTS webtrees COLLATE utf8_unicode_ci)

I'm using MariaDB 11.3.2 which appears to have deprecated utf8_unicode_ci in favour of utf8mb4_unicode_ci so that's probably why the error is happening. The fisharebest/webtrees repo has committed a change to use utf8mb4_unicode_ci but that wasn't in the 2.1.20 release.

I've tried the latest-beta and latest-alpha versions of webtrees-docker...latest beta reports an unsupported version of PHP 7.4 and still uses utf8_unicode_ci. latest-alpha won't run...but it's an alpha so I'm not complaining!

I'm not sure how webtrees-docker latest-alpha/beta compare to fisharebest/webtrees versions. Is it possible that alpha/beta might include the committedDB changes before they appear in v2.2.0 (??)?

NathanVaughn commented 6 months ago

So, the latest-alpha and latest-beta tags are built based on Webtrees releases that are tagged as beta or alpha. For example, https://github.com/fisharebest/webtrees/releases/tag/2.1.0-beta.2 or https://github.com/fisharebest/webtrees/releases/tag/2.1.0-alpha.2. There hasn't been a beta or alpha release in a long time, so that's likely why those images may be broken. Hopefully fisharebest releases a new version soon with that change applied. You could potentially build yourself a custom version using the Dockerfile and changing the webtrees URL, but I have never explored offering nightly builds or anything. I'm not exactly sure what fisharebest does to create release .zip files.

I will say for my own instance, all of my tables use utf8mb3_unicode_ci and is MariaDB 10.11.7.

packman2008 commented 5 months ago

Thanks for your reply. Apologies for my slow reply. My docker swarm migration suddenly got very busy!

I did some more digging and it looks like MariaDB dropped support for utf8_unicode_ci (alias utf8mb3_unicode_ci) somewhere in v11, so that's why your v10.11.7 still works OK. Also the webtrees DB changes to support later versions of MariaDB are still underway so it's not possible to create a custom version yet, although I guess I could just get the current version and find the utf8_unicode_ci strings and change them.

I think the easiest option for now is to create a MariaDB v10 container and have webtrees use that for compatibility purposes and then I can migrate to the 'master' MariaDB v11 database when the next version of webtrees is released.

NathanVaughn commented 5 months ago

No worries, you're getting what you pay for in support 😁. I can't remember why I pinned my MariaDB container at 10.7 but I bet that may be why. Thanks for figuring that out. I updated the example docker-compose.yml file which hopefully helps others.

github-actions[bot] commented 2 weeks ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.