我正在使用Rails 3.0.3(不要問),當我運行帶有十進制列的表的遷移並設置:default => 0時,它將列的比例和精度重新設置爲(10,0)。Rails遷移十進制列:默認=> 0將MySQL精度重新設置爲0?
def self.up
create_table :courses do |t|
t.integer :user_id
t.string :name
t.decimal :distance, :precision => 5, :scale => 2, :default => 0
t.text :notes
t.timestamps
end
end
當我刪除:默認=> 0從遷移選項列的縮放和精度是正確的:(5,2)
我試圖運行僅具有change_column遷移:默認=>: 0組,但列的規模和精度進行了重新設置爲(10,0)
change_column :courses, :distance, :decimal, :default => 0.0
我知道我可以進入MySQL和糾正列的精度和規模,但想知道如果我做有什麼不對或如果這是一個錯誤?
谷歌顯示沒有信息,所以我認爲我做錯了什麼。
感謝您的答覆。我最終做的是從create_table遷移中刪除:precision和:scale選項,併爲該列添加column_change遷移:precision => 5和:scale => 2.我忽略了:default選項。我把所有東西都回滾了,重新運行了遷移,並且看到MySQL自動地將列的默認值自動設置爲0.0 – jacoulter 2011-12-16 17:52:59