MySQLで、BMP外の文字を入れる場合には、utf8ではなくutf8mb4が必要となります。ただし、ただ書き換えただけではうまくいかない部分がありました。 TL; DR MySQLのインデックス長は767バイトまで 1文字4バイトのutf8mb4では191文字が限界 その(文字コード/カラム長/インデックス)、必要ですか? エラーを食らう モバイル向けのサービスを作ることになったのですが、Unicodeの絵文字入れられるようにすることが必要だろう、ということで、文字コードをutf8mb4とすることにしました。で、いつものようにマイグレーションを作成してマイグレートをかけたのですが、エラーになってしまいました。 見てみると、インデックスの長さでエラーとなっていました。MySQLのインデックスは最大767 バイトで、RailsやCakePHPのデフォルトで生成される255文字のVARCHAR