Curtis Bruneau wrote:
> Curtis Bruneau wrote:
>> I'm having an issue with the mysql 4.0 -> 4.1 conversion, the script 
>> performs ok (i had to update my DBD::mysql) it generates the proper 
>> SQL, I went a step further and merged each tables ALTER into two 
>> commands (before-after) so our bigger tables didn't have to dump more 
>> then it needs to (very time consuming)..
>>
>> I have run into an issue with our Users table, we have several emails 
>> with french accents (é) that seem to convert properly but the UNIQUE 
>> contraint complains that é and e are the same, I had tried removing 
>> the constraint and it converts but won't let me add the index again, 
>> i had to change my client charset to view the chars properly in mysql 
>> client once converted to utf8 from latin1. Does anyone know how I can 
>> solve this? Does the server need a setting to differentiate the two 
>> in UTF8?
>>
>> Thanks
>>
>> Curtis
>>
> Interesting to note for Users, when i do a direct conversion (skip the 
> first alter) it seems to work out fine, it's able to differentiate the 
> two chars. Also something to note we sometimes have emails show up 
> with accents so the ascii char set for EmailAddress breaks the char 
> where the old latin1 was fine, whether or not those chars are valid 
> emails i'm not sure but if the user sets it as that it will be 
> recognized. Below is an example of both conversions. I'll probably 
> have to apply my own logic to some of these conversions to make sure 
> they go ok, I'll be testing shortly not that the tables have somewhat 
> converted.
>
>
> ##DIRECT
> mysql> ALTER TABLE Users DEFAULT CHARACTER SET 
> utf8;                                                                         
>                               
>
> Query OK, 183991 rows affected (6.97 sec)
> Records: 183991  Duplicates: 0  Warnings: 0
>                                                                               
>                           
>
> mysql> ALTER TABLE Users MODIFY WebEncoding VARCHAR(16) CHARACTER SET 
> ascii NULL DEFAULT NULL, MODIFY AuthSystem VARCHAR(30) CHARACTER SET 
> utf8 NULL DEFAULT NULL, MODIFY MobilePhone VARCHAR(30) CHARACTER SET 
> utf8 NULL DEFAULT NULL, MODIFY WorkPhone VARCHAR(30) CHARACTER SET 
> utf8 NULL DEFAULT NULL, MODIFY PagerPhone VARCHAR(30) CHARACTER SET 
> utf8 NULL DEFAULT NULL, MODIFY ExternalContactInfoId VARCHAR(100) 
> CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY ContactInfoSystem 
> VARCHAR(30) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY HomePhone 
> VARCHAR(30) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY Address1 
> VARCHAR(200) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY 
> ExternalAuthId VARCHAR(100) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY NickName VARCHAR(16) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY Address2 VARCHAR(200) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY Timezone VARCHAR(50) CHARACTER SET ascii NULL DEFAULT NULL, 
> MODIFY RealName VARCHAR(120) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY City VARCHAR(100) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY 
> EmailAddress VARCHAR(120) CHARACTER SET ascii NULL DEFAULT NULL, 
> MODIFY EmailEncoding VARCHAR(16) CHARACTER SET ascii NULL DEFAULT 
> NULL, MODIFY State VARCHAR(100) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY Zip VARCHAR(16) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY 
> Organization VARCHAR(200) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY 
> Lang VARCHAR(16) CHARACTER SET ascii NULL DEFAULT NULL, MODIFY Gecos 
> VARCHAR(16) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY Country 
> VARCHAR(50) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY Name 
> VARCHAR(200) CHARACTER SET utf8 NOT NULL DEFAULT '';
> Query OK, 183991 rows affected, 34 warnings (5.19 sec)
> Records: 183991  Duplicates: 0  Warnings: 0
>
> ## BINARY CONVERT
> mysql> ALTER TABLE Users DROP INDEX Users1;
> Query OK, 183991 rows affected (4.97 sec)
> Records: 183991  Duplicates: 0  Warnings: 0
>
> mysql> ALTER TABLE Users DEFAULT CHARACTER SET utf8;
> Query OK, 183991 rows affected (6.95 sec)
> Records: 183991  Duplicates: 0  Warnings: 0
>
> mysql> ALTER TABLE Users MODIFY WebEncoding VARBINARY(16) NULL DEFAULT 
> NULL, MODIFY AuthSystem VARBINARY(30) NULL DEFAULT NULL, MODIFY PGPKey 
> BLOB NULL DEFAULT NULL, MODIFY Password VARBINARY(40) NULL DEFAULT 
> NULL, MODIFY MobilePhone VARBINARY(30) NULL DEFAULT NULL, MODIFY 
> WorkPhone VARBINARY(30) NULL DEFAULT NULL, MODIFY PagerPhone 
> VARBINARY(30) NULL DEFAULT NULL, MODIFY ExternalContactInfoId 
> VARBINARY(100) NULL DEFAULT NULL, MODIFY ContactInfoSystem 
> VARBINARY(30) NULL DEFAULT NULL, MODIFY HomePhone VARBINARY(30) NULL 
> DEFAULT NULL, MODIFY Address1 VARBINARY(200) NULL DEFAULT NULL, MODIFY 
> ExternalAuthId VARBINARY(100) NULL DEFAULT NULL, MODIFY Comments TEXT 
> CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY NickName VARBINARY(16) 
> NULL DEFAULT NULL, MODIFY Address2 VARBINARY(200) NULL DEFAULT NULL, 
> MODIFY Timezone VARBINARY(50) NULL DEFAULT NULL, MODIFY 
> FreeformContactInfo TEXT CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY 
> RealName VARBINARY(120) NULL DEFAULT NULL, MODIFY City VARBINARY(100) 
> NULL DEFAULT NULL, MODIFY EmailAddress VARBINARY(120) NULL DEFAULT 
> NULL, MODIFY EmailEncoding VARBINARY(16) NULL DEFAULT NULL, MODIFY 
> State VARBINARY(100) NULL DEFAULT NULL, MODIFY Signature TEXT 
> CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY Zip VARBINARY(16) NULL 
> DEFAULT NULL, MODIFY Organization VARBINARY(200) NULL DEFAULT NULL, 
> MODIFY Lang VARBINARY(16) NULL DEFAULT NULL, MODIFY Gecos 
> VARBINARY(16) NULL DEFAULT NULL, MODIFY Country VARBINARY(50) NULL 
> DEFAULT NULL, MODIFY Name VARBINARY(200) NOT NULL DEFAULT '';
> Query OK, 183991 rows affected (8.25 sec)
> Records: 183991  Duplicates: 0  Warnings: 0
>
> mysql> ALTER TABLE Users MODIFY WebEncoding VARCHAR(16) CHARACTER SET 
> ascii NULL DEFAULT NULL, MODIFY AuthSystem VARCHAR(30) CHARACTER SET 
> utf8 NULL DEFAULT NULL, MODIFY MobilePhone VARCHAR(30) CHARACTER SET 
> utf8 NULL DEFAULT NULL, MODIFY WorkPhone VARCHAR(30) CHARACTER SET 
> utf8 NULL DEFAULT NULL, MODIFY PagerPhone VARCHAR(30) CHARACTER SET 
> utf8 NULL DEFAULT NULL, MODIFY ExternalContactInfoId VARCHAR(100) 
> CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY ContactInfoSystem 
> VARCHAR(30) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY HomePhone 
> VARCHAR(30) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY Address1 
> VARCHAR(200) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY 
> ExternalAuthId VARCHAR(100) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY NickName VARCHAR(16) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY Address2 VARCHAR(200) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY Timezone VARCHAR(50) CHARACTER SET ascii NULL DEFAULT NULL, 
> MODIFY RealName VARCHAR(120) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY City VARCHAR(100) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY 
> EmailAddress VARCHAR(120) CHARACTER SET ascii NULL DEFAULT NULL, 
> MODIFY EmailEncoding VARCHAR(16) CHARACTER SET ascii NULL DEFAULT 
> NULL, MODIFY State VARCHAR(100) CHARACTER SET utf8 NULL DEFAULT NULL, 
> MODIFY Zip VARCHAR(16) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY 
> Organization VARCHAR(200) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY 
> Lang VARCHAR(16) CHARACTER SET ascii NULL DEFAULT NULL, MODIFY Gecos 
> VARCHAR(16) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY Country 
> VARCHAR(50) CHARACTER SET utf8 NULL DEFAULT NULL, MODIFY Name 
> VARCHAR(200) CHARACTER SET utf8 NOT NULL DEFAULT '';
> Query OK, 183991 rows affected (8.57 sec)
> Records: 183991  Duplicates: 0  Warnings: 0
>
> mysql> ALTER TABLE Users ADD UNIQUE KEY `Users1` USING BTREE (`Name`);
> ERROR 1062 (23000): Duplicate entry '[EMAIL PROTECTED]' for key 2
>
>
> Curtis
>
This has brought up a similar issue where if the client charset is in 
UTF8 it doesn't see the converted characters as valid UTF8, so I'm 
definitely in a bind to get it converted properly where the constraints 
work properly but the display works fine in UTF8 (presumably). Has 
anyone else had these issues?

Thanks for your time
Curtis
_______________________________________________
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com

Reply via email to