rails复杂索引的长度

rails length of complicated index

我是这样写迁移的:

create_table :table1 do |t|
  t.string :foo, null: false, default: '', limit: 512
  t.integer :bar, null: false


  t.index [:foo, :bar]
end

遇到错误

Mysql2::Error: Specified key was too long; max key length is 767 bytes

如何解决这个问题,除了减少列 foo 限制?

字符串是 varchar(255) 您的限制太大,因此您可以使用 t.text 或将您的限制更改为 255。

您可以通过传递链接到索引字段的散列来修复之前的错误。

t.index [:foo, :bar], :length => {:foo => 25 }