RefineryCMS: нелегальное сочетание сортировок - PullRequest
0 голосов
/ 17 августа 2011

Я работаю над экземпляром refinerycms, который должен использовать технологию i18n, но при сохранении страницы на русском языке я получаю следующую ошибку:

ActiveRecord::StatementInvalid in Admin::PagesController#update

Mysql2::Error: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=': SELECT COUNT(*) FROM `slugs` WHERE `slugs`.`name` = 'Ñтраница-не-найдена' AND `slugs`.`scope` IS NULL AND `slugs`.`locale` = 'ru' AND (`slugs`.sluggable_id = 2 AND `slugs`.sluggable_type = 'Page')

есть идеи, почему это происходит? В моем database.yml я установил кодировку utf8

1 Ответ

0 голосов
/ 29 мая 2012

Вполне вероятно, что для вашей базы данных установлено значение latin1 или для таблицы slugs установлено значение latin1 или для одного из столбцов таблицы slugs установлено значение latin1 ... разве вы не любите MySQL?

database.yml предназначен только для адаптера, он не меняет базу данных.Перейдите в консоль dbconsole, затем:

Чтобы проверить настройки базы данных:
ПОКАЗАТЬ ПЕРЕМЕННЫЕ, КАК 'char%';
ПОКАЗАТЬ ПЕРЕМЕННЫЕ, КАК 'collation%';

Чтобы проверить настройки таблицы: SHOW CREATE TABLE tablename;

Чтобы проверить отдельные столбцы: ПОКАЗАТЬ ПОЛНЫЕ КОЛОННЫ В таблице имя;

Если вы создали базу данных с неправильной кодировкой, вам придется изменять каждый вхождения latin1 во всех этих случаях.

...