2016-02-05 85 views
2

我寫了這樣的遷移:導軌長度

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

我該如何解決這個問題,除了deсrease列foo限制?

回答

1

字符串爲varchar(255)的限制太大,所以你可以使用t.text或更改限制到255

以前的錯誤你可以通過鏈接到現場對指數的哈希修復。

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