sql >> データベース >  >> RDS >> Mysql

Railsテストスイートの実行中にMySqlからの照合エラーの不正な組み合わせ

    照合を追加する:utf8_general_ciを、これまでと同じようにdatabase.ymlファイルに追加するとうまくいくはずです。 「rakeRAILS_ENV=test db:migrate:reset db:fixtures load」を使用してテストデータベースを再作成してみてください。これにより、フィクスチャ以外にあるすべてのデータがクリアされます。

    それは私のために働いた。データベース、テーブル、および列の照合を確認するには、次のコマンドを実行できます。

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

    これで、テストデータベース内のすべてに、database.ymlで指定された照合が含まれるはずです。




    1. 私のサイトの各ユーザーにMySQLデータベースを割り当てるのは不合理ですか?

    2. MySQLデータベーススキーマをGitHubに含める方法は?

    3. Windows Azure VMのパフォーマンスの比較、パート1

    4. SequelizeでMySQLに接続できません