之前遇到過很多次,老是忘記,今天記錄一下吧。
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]