我写了这样的迁移:
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
限制?
答案 0 :(得分:1)
字符串是varchar(255),你的限制太大,所以你可以使用t.text或将你的限制改为255。
您可以通过传递链接到索引上字段的哈希来修复上一个错误。
t.index [:foo, :bar], :length => {:foo => 25 }