天天看點

rails不支援bigint類型的mysql主鍵

之前遇到過很多次,老是忘記,今天記錄一下吧。

mysql可以支援int、tinyint、bigint等幾種資料格式的字段,rails(準确說是activerecord)抽象了資料結構,統一使用integer表示整數,然後根據limit來決定使用哪種int:

但是這個做法僅限于普通字段,activerecord中對于主鍵存在大量寫死,是以我們就不能通過改變主鍵的limit的方式設定int類型。

繞開的辦法有兩種:

[list]

[*] 修改 activerecord-2.3.8/lib/active_record/connection_adapters/connection_adapters/mysql_adapter.rb 中的 NATIVE_DATABASE_TYPES 常量

[*] 不設定主鍵,手工指定 id -

[/list]