Conversation
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds utf8mb4 support for ILIAS and is based on PR #5943.
PRs #12020 & #12021 must be merged first, before this PR can be merged.
This PR implements the following features:
UTF8MB* support
The database is still able to work with UTF8MB3 tables, so this doesn't require the migration to be run.
New installations will and must still be installed with UTF8MB3. This, as well as the default collation (see below), will be changed when PRs #11718, #12020 & #12021 are integrated into the SQL dump.
This means when this PR is merged installations still must be installed with utf8mb3 and can be (optionally) converted to UTF8MB4 after all update steps are executed.
Collation
Currently we chose the collation
utf8mb4_unicode_520_cias the preferred one (used in the migration).The migration will check if the collation
utf8mb4_unicode_520_ciis available and will fallback toutf8mb4_unicode_ci.We chose this collation for the following reasons:
utf8mb4_general_ciandutf8mb4_unicode_cihave some problems like treating certain emojis as the same (e.g.🍺️=🍣️).For completeness: MariaDB & MySQL both support the newer
utf8mb4_0900_ai_cicollation but on MariaDB this is an alias touca1400_ai_ciwhich is not exactly the same collation (UCA v14.0.0 vs. v9.0.0).IMO we could also use
utf8mb4_0900_ai_cias ILIAS preferred & default collation, as it is newer & equivalent to the default collation on MariaDB (uca1400_ai_ci) & MySQL (utf8mb4_0900_ai_ci).But as they are not exactly the same
utf8mb4_unicode_520_ciwould be the safer option IMO.Summary: When will what be possible
When this PR is merged:
ILIAS MUST be installed with UTF8MB3 but can then be optionally migrated to UTF8MB4.
After this:
When #11718, #12020 & #12021 are integrated into the SQL dump:
ILIAS can also be installed with UTF8MB4 but can't create UTF8MB4 schemas (the schema must already exist).
After this:
When PR #12145 is merged:
ILIAS can also create UTF8MB4 schemas and new installation will be created with a UTF8MB4 collation by default.
At any point ILIAS will still be able to work with UTF8MB3 database schemas.
And even when UTF8MB4 is the default collation one can configure a UTF8MB3 collation in the
config.jsonto still be able to create new installations with UTF8MB3.Best regards
@lscharmer