在rails 4.2.4中,我在运行迁移命令时收到类似Mysql2::Error: Index column size too large. The maximum column size is 767 bytes.
的错误。
Mysql gem是,
mysql2 (0.3.20, 0.3.18)
当我在控制台中运行此ActiveRecord::Base.connection.collation
时,我得到了"utf8_general_ci"
如何解决此问题?请帮帮我。
答案 0 :(得分:2)
innodb表中单列索引的最大长度为767字节(innodb restrictions)。您可能尝试使用超过255个字符的utf8字符集(每个字符最多3个字节)索引varchar列。
解决方法可能是设置innodb_large_prefix mysql服务器配置变量,或者减少该列的最大长度,或者更改字符集和排序规则,或者将列拆分为多列。