Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur de mélange illégal de classements de MySql lors de l'exécution de la suite de tests rails

Ajouter la collation :utf8_general_ci à votre fichier database.yml comme vous l'avez fait devrait faire l'affaire. Essayez de recréer la base de données de test en utilisant "rake RAILS_ENV=test db:migrate:reset db:fixtures load" - avertissement cela effacera toutes les données que vous avez là-bas au-delà des luminaires.

Cela a fonctionné pour moi. Pour vérifier voir le classement sur la base de données, les tables et les colonnes, vous pouvez exécuter ce qui suit :

-- 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;

Tout dans votre base de données de test devrait maintenant avoir le classement spécifié dans database.yml.