Roundup Tracker - Issues

Message7793

Author ngaba
Recipients ngaba, rouilj
Date 2023-06-30.09:13:46
Message-id <1688116426.59.0.762927186513.issue2551282@roundup.psfhosted.org>
In-reply-to
The initial patch is just a worksforme proof (with my MariaDB, etc.).

I think it is not a good idea to hardwire these "utf8mb4" settings into back_mysql.py, because all users upgrading from an older Roundup version (with utf8mb3 MySQL database) will face with the cryptic exception 

OperationalError: (1253, "COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'utf8mb3'")

if they want to use exact_match_spec; moreover, their mysql database will contain both utf8mb3 and utf8mb4 tables after a while (utf8mb4 tables will be created when user adds new classes to config.ini).

I think these utf8mb4 collations etc. should be read from config.ini.
The simplest way is to add config.ini options like
mysql_bin_collation = utf8mb4_bin
etc., or compute implicitly these from the value of mysql_charset. (The problem is that now the default mysql_charset is utf8mb4, so even this latter implementation is not backward compatible. So I would choose the new config.ini settings, that is more failsafe and user configurable.)

In addition, in Roundup 2.4.0 documentation, mysql users should be advised to convert their utf8mb3 tables to utf8mb4 and modify config.ini accordingly. (In my opinion, mysql should provide a clean documentation and a script or mysql command for doing the utfbm3->utf8mb4 conversion...)
History
Date User Action Args
2023-06-30 09:13:46ngabasetmessageid: <1688116426.59.0.762927186513.issue2551282@roundup.psfhosted.org>
2023-06-30 09:13:46ngabasetrecipients: + ngaba, rouilj
2023-06-30 09:13:46ngabalinkissue2551282 messages
2023-06-30 09:13:46ngabacreate