Feature #31921

Updated by Marius BALTEANU almost 3 years ago

Currently, Redmine with MySQL as database doesn't support very well 4 byte characters (for ex: emojis) and you need some experience with MySQL in order to properly configure MySQL (and Redmine) to support those characters. Because of this, there are reported plenty of tickets that I'm going to relate to this issue later.

I would like to work on this in order to improve the default Redmine installation and also, to provide some documentation regarding how you can migrate an existing Redmine installation to support 4 byte characters.

For now, I've created two patches:
1. attachment:0001-Update-default-database-config-for-MySQL.patch
- Adds to the @database.yml.example@ the required encoding and collation, including a note to inform users that are safe only for new installations.
- Adds a test to ensure that an issue can be created using a emoji in description
- Updates some old instructions
- These settings will be default in Rails 6: https://github.com/rails/rails/pull/33608

2. attachment:0002-Task-to-check-mysql-support-for-utf8mb4.patch
This task checks the MySQL configuration (@innodb_file_per_table@, @innodb_large_prefix@, @innodb_file_format@) and @ENGINE@, @ROW_FORMAT@ and @TABLE_COLLATION@ for Redmine tables. Any feedback or ideas to improve this task are welcome!

I'll try to create later a Wiki page regarding the steps required to migrate and existing installation or at least some useful links.