我有一个迁移文件
class CreateProductDetails < ActiveRecord::Migration
def change
create_table :product_details do |t|
t.integer :quantity , :default => 1
t.float :price , :default => 0.0
t.float :fee , :default => 0.0
t.timestamps
end
end
end
该表已使用了很长时间,并保存了我不想丢失的重要数据。现在我想缩放并将默认值(0.00)添加到 colm 价格/费用中。我生成了一个新的迁移文件,例如:-
class AddScaleToProductDetail < ActiveRecord::Migration
def self.up
change_column :product_details, :price, :float, :default => 0.00, :scale =>2
change_column :product_details, :fee, :float, :default => 0.00, :scale =>2
end
end
现在我进行了迁移:-
[root@www project_trunk]# rake db:migrate
== AddScaleToProductDetail: migrating ====================================
-- change_column(:product_details, :price, :float, {:default=>0.0, :scale=>2})
-> 0.6311s
-- change_column(:product_details, :fee, :float, {:default=>0.0, :scale=>2})
-> 0.0480s
== AddScaleToProductDetail: migrated (1.3898s) ===========================
...现在我有几个问题...
为什么迁移运行时我仍然看到 default-0.0,
此外,任何新插入的值仍会保存为 22 而不是 22.00(预期)。
我想将现有值更新为小数点 2。