移行ファイルがあります
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 price/feeに追加したいと思います.iは次のような新しい移行ファイルを生成しました:-
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.00 (予想) ではなく 22 として保存されます。
既存の値を小数点以下 2 桁に更新したい。