[LRUG] MySQL/Rails Collation

Andrew Stewart boss at airbladesoftware.com
Mon Jan 23 08:56:44 PST 2012


Hola El Rug,

I have a Rails app which started life as Rails 2.x and is now Rails 3.0.y.  It sits on top of a MySQL database.

I have just started to see collation errors both at the Rails level and in the mysql console.  For example:

    mysql> select * from samples where code = 'abcd‐01‐s10‐036';
    ERROR 1267 (HY000): Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

    mysql> show create table samples;
    [snip] ENGINE=InnoDB AUTO_INCREMENT=54307 DEFAULT CHARSET=latin1

In the Rails console:

    >> ActiveRecord::Base.connection.collation
    "latin1_swedish_ci"

Now I thought Rails ensured everything from top to toe was UTF-8; apparently not in this case.  Anyway, how do I best fix this (while staying with MySQL)?

Thanks in advance.

Yours,
Andy Stewart

-------
http://airbladesoftware.com


More information about the Chat mailing list