[rt-users] MySQL utf8 problems
David O'Callaghan
david.ocallaghan at cs.tcd.ie
Fri Jun 5 09:03:18 EDT 2009
Hi,
Some time ago I upgraded from 3.2.x to 3.8.2 and from MySQL 3.x to
5.0.45. This went smoothly but I somehow managed to do it *without*
using the infamous upgrade-mysql-schema.pl. I *did* run
`rt-setup-database --dba root --prompt-for-dba-password --action
upgrade` (also without problems).
So I tried upgrading from 3.8.2 to 3.8.3 and on startup got an error
message in the logs saying:
[Fri Jun 05 11:57:03 2009] [error] RT since version 3.8 has new schema
for MySQL
versions after 4.1.0\nFollow instructions in the UPGRADING.mysql file.
After backing up the DB I attempted to run the schema upgrade. The
script outputted a large number of queries, mostly modifying the content
type of columns. The queries looked reasonable and I didn't get any
errors when applying them to the DB.
However, this gave content encoding problems with tickets. For example,
in tickets with an í character in the subject the subject is truncated
before the í and the content of the ticket is not visible (the ticket
appears to be empty). In other tickets non-ASCII characters appear
incorrectly.
I suspect that some of the content in my (pre-upgrade) DB may have been
utf8 stored in latin1 fields.
To restore a "working" system I cheated and modified my pre-schema
upgrade backup (which worked with 3.8.2) so that it would pass the DB
compatibility check and then restored. The encoding problems have
disappeared.
So I would like to know:
* do the queries from upgrade-mysql-schema actually try to convert
latin1 encoded text to utf8?;
* what happens to text that is already utf8?;
* am I likely to have problems if I stay with the old schema; and
* is there a way for me to upgrade without messing up the encoding?
Thanks,
David
More information about the rt-users
mailing list