読者です 読者をやめる 読者になる 読者になる

CubicLouve

Spring_MTの技術ブログです。https://github.com/SpringMT (http://spring-mt.tumblr.com/ からの移転)

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

rails

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

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

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

回避策はこんな感じ

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

gist11317662