CubicLouve

Spring_MTの技術ブログ

acts-as-taggable-onでMysql2::Error: Specified key was too long; max key length is 767 bytesって怒られたら

MySQLのencodingをutf8mb4にしています。

なので、 varchar(255)のカラムにindexを貼ろうとすると、MySQLから怒られます。

acts-as-taggable-onでも、嵌りそうな予感はしていたが。。

回避策はこんな感じ

  • tagsテーブルのnameカラムにlimitを設定
  • referencesで定義されるtaggable_type、tagger_typeのカラムにlimitを設定

gist11317662