Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Illegale Mischung von Sortierungsfehlern von MySql beim Ausführen der Rails-Testsuite

Das Hinzufügen der Sortierung:utf8_general_ci zu Ihrer database.yml-Datei, wie Sie es getan haben, sollte den Zweck erfüllen. Versuchen Sie, die Testdatenbank mit "rake RAILS_ENV=test db:migrate:reset db:fixtures load" neu zu erstellen - Warnung:Dadurch werden alle Daten, die Sie dort haben, außer den Fixtures gelöscht.

Das hat bei mir funktioniert. Um zu überprüfen, ob die Sortierung in der Datenbank, den Tabellen und Spalten angezeigt wird, können Sie Folgendes ausführen:

-- Database Collations:
SELECT schema_name,default_character_set_name,default_collation_name 
FROM information_schema.SCHEMATA 
WHERE schema_name not IN ('mysql');

-- Table Collations:
SELECT T.table_schema, T.table_name, T.TABLE_COLLATION, CCSA.CHARACTER_SET_NAME 
FROM information_schema.`TABLES` T,
 information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
AND T.table_schema not IN ('mysql');

-- Column Collations:
SELECT table_schema, table_name, column_name, collation_name, character_set_name
FROM information_schema.`COLUMNS` C
WHERE C.table_schema not IN ('mysql')
ORDER BY 1,2,4;

Alles in Ihrer Testdatenbank sollte jetzt die in database.yml angegebene Sortierung haben.