2011-07-26 47 views
9

任何人都可以告訴我如何編輯以下遷移以將:phone整數更改爲字符串?遷移:將整列更改爲字符串

class CreateContactInfos < ActiveRecord::Migration 
    def change 
    create_table :contact_infos do |t| 
     t.integer :phone 
     t.string :facebook 
     t.references :user 

     t.timestamps 
    end 
    add_index :contact_infos, :user_id 
    end 
end 

在此先感謝!

回答

20

我猜你已經遷移你表示一方,所以創建另一箇中,你會把:

change_column :contact_infos, :phone, :string 
+0

再次感謝:D – imjp

+10

除非您打算存儲真正長的電話號碼,否則應該是':string',而不是':text',它是指超過255個字符的文本。 – tmandry

1

我增加了一些更多的解釋,以this.We需要產生新的遷移

rails g migration change_phone_to_be_string_in_contact_infos

如果我們打開了遷移,我們應該看到這樣的事情

class ChangePhoneToBeStringInContactInfos < ActiveRecord::Migration[5.0] 
def change 
end 
end 

我們稱之爲遷移不會影響我們接下來要做的事情,但未來我們和其他開發人員會感謝我們正確地指定我們的遷移。

正如你所看到的改變方法是空着的。我們需要在這裏手動添加一些代碼。

class ChangePhoneToBeStringInContactInfos < ActiveRecord::Migration[5.0] 
def change 
    change_column :customers, :phone, :string 
end 
end 

保存此文件後只是做耙分貝:遷移,我們可以看到我們想要的變化。

相關問題