Ruby on rails 复杂索引的轨道长度

Ruby on rails 复杂索引的轨道长度,ruby-on-rails,ruby,rails-migrations,Ruby On Rails,Ruby,Rails Migrations,我是这样写的: create_table :table1 do |t| t.string :foo, null: false, default: '', limit: 512 t.integer :bar, null: false t.index [:foo, :bar] end 我犯了一个错误 Mysql2::错误:指定的密钥太长;最大密钥长度为767字节 除了删除列foolimit之外,我如何解决此问题?字符串为varchar(255)。您的限制太大,因此您可以使用t.te

我是这样写的:

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


  t.index [:foo, :bar]
end
我犯了一个错误

Mysql2::错误:指定的密钥太长;最大密钥长度为767字节

除了删除列
foo
limit之外,我如何解决此问题?

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

您可以通过传递链接到索引上的字段的哈希来修复以前的错误

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