2014-02-11 36 views
-1

我使用Rails 3.2.3,和MySQL我的數據庫
我已經創建了一個模型affiliate_payment.rb,與列:amount,最初的數據類型float。我想這與以下遷移更改爲十進制:更改數據庫數據類型爲十進制

class ChangeAffiliateIdAmountToDecimal < ActiveRecord::Migration 
    def up 
    change_column :affiliate_payments, :amount, :decimal 
    end 

    def down 
    change_column :affiliate_payments, :amount, :float 
    end 
end 

rake db:migrate ...
但是當我檢查列的類型進行確認,我發現,列類型是現在integer

2.0.0-p353 :101 > AffiliatePayment.columns_hash["amount"].type 
=> :integer 

有人可以解釋我做錯了什麼嗎?

回答

1

試試這個:

change_column :affiliate_payments, :amount, :decimal, :precision => 8, :scale => 2 

這將成爲BigDecimal

-1

嗨您已創建遷移以更改列類型,因此不需要運行rake db:migrate

你必須與有移民數量運行遷移像下面

rake db:migrate:up VERSION = version number of migration. 
+0

我不認爲這是問題。列類型從float更改爲整數,因此遷移已運行。 –

+0

我沒有收到你。 –

0

使用此新的Ruby語法:

change_column :affiliate_payments, :amount, :decimal, precision: 8, scale: 2 
相關問題