refactor: migrate database encoding to utf8mb4#805
Open
anonymoususer72041 wants to merge 5 commits into
Open
Conversation
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 pull request migrates OpenCATS database handling from MySQL
utf8toutf8mb4so the application can store the full UTF-8 character range, including four-byte Unicode characters.The runtime database charset configuration now uses
utf8mb4, while application-level encodings such asHTML_ENCODINGandAJAX_ENCODINGremain unchanged asUTF-8. Installer-specific database connections also set the configured SQL character set before running installation queries.Fresh installations now create the database schema with
utf8mb4andutf8mb4_unicode_ci. Existing installations are migrated through the current schema upgrade path, which updates the database default charset/collation and converts existing base tables toutf8mb4. Identifier quoting in the migration escapes backticks before generatingALTER DATABASEandALTER TABLEstatements.The installation checks were updated to validate
utf8mb4support and regression coverage was added to verify that a string containing a four-byte Unicode character can be stored and read back unchanged through the database layer.Legacy upgrade SQL files are intentionally left unchanged. This PR focuses on the current runtime configuration, fresh installation schema, installer behavior, current upgrade path and regression coverage.
Validation performed:
vendor/bin/phpunit.