Mercurial > p > roundup > code
diff roundup/configuration.py @ 7860:8b31893f5930
issue2551115/issue2551282 - utf8mb4 support in roundup
Fix issues with utf8 support in Roundup. By default using:
utf8mb4 charset
utf8mb4_unicode_ci collation (case insensitive)
utf8mb4_0900_ci collation (case sensitive)
which are settable from config.ini. Sadly I couldn't come up with a way
to mange these from one parameter. Doing a compatibility lookup table
would have increased the maintenance burden and have me chasing MySQL
changes. So I opted for the easy path and have the admins (with more
MySQL experience) make the choices.
Conversion directions added to upgrading.txt. I don't have any good
testing for this. I was able to generate utf8/utf8mb3 tables and load
a little data and convert. However this is a poor substitute for a
conversion on a working tracker 8-(.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 06 Apr 2024 22:47:25 -0400 |
| parents | 0c71ac9cdcd0 |
| children | 82093eb944d6 |
line wrap: on
line diff
--- a/roundup/configuration.py Sat Apr 06 20:37:45 2024 -0400 +++ b/roundup/configuration.py Sat Apr 06 22:47:25 2024 -0400 @@ -1495,11 +1495,23 @@ "Name of the group to use in the MySQL defaults file (.my.cnf).\n" "Only used in MySQL connections."), (Option, 'mysql_charset', 'utf8mb4', - "Charset to use for mysql connection,\n" - "use 'default' for the mysql default, no charset option\n" - "is used when creating the connection in that case.\n" + "Charset to use for mysql connection and databases.\n" + "If set to 'default', no charset option is used when\n" + "creating the db connection and utf8mb4 is used for the\n" + "database charset.\n" "Otherwise any permissible mysql charset is allowed here.\n" "Only used in MySQL connections."), + (Option, 'mysql_collation', 'utf8mb4_unicode_ci', + "Comparison/order to use for mysql database/table collations.\n" + "When upgrading, you can use 'utf8' to match the\n" + "depricated 'utf8mb3'. This must be compatible with the\n" + "mysql_charset setting above. Only used by MySQL."), + (Option, 'mysql_binary_collation', 'utf8mb4_0900_bin', + "Comparison/order to use for mysql database/table collations\n" + "when matching case. When upgrading, you can use 'utf8_bin'\n" + "to match the depricated 'utf8mb3_bin' collation. This must\n" + "be compatible with the mysql_collation above. Only used\n" + "by MySQL."), (IntegerNumberGeqZeroOption, 'sqlite_timeout', '30', "Number of seconds to wait when the SQLite database is locked\n" "Default: use a 30 second timeout (extraordinarily generous)\n"
