Rails 4 - Mysql2 ::错误:索引列大小太大

时间:2015-10-09 05:05:43

标签: mysql ruby-on-rails ruby indexing

在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"

之类的输出

如何解决此问题?请帮帮我。

1 个答案:

答案 0 :(得分:2)

innodb表中单列索引的最大长度为767字节(innodb restrictions)。您可能尝试使用超过255个字符的utf8字符集(每个字符最多3个字节)索引varchar列。

解决方法可能是设置innodb_large_prefix mysql服务器配置变量,或者减少该列的最大长度,或者更改字符集和排序规则,或者将列拆分为多列。