2012-06-05 28 views
50

本來我創建了一個表列Rails的遷移,使一列空=>真

t.string "email", :default => "", :null => false 

要求已經改變,現在我需要讓電子郵件爲空。我怎麼能寫遷移,使:空=>真

+1

的可能重複[如何改變一個空列到不是在一個Rails的遷移可爲空?](http://stackoverflow.com/questions/5966840/how-to-change-a-nullable-column-to-not -nullable-in-a-rails-migration) – laffuste

回答

69

嘗試:

change_column :table_name, :email, :string, :null => true 
+0

謝謝......工作! – Pykih

+0

請考慮使用'change_column_null'因爲這'change_column'可能無法在某些版本 –

50

我不能得到上述方案與活動記錄4.0.8和PostgreSQL 9.3

工作

然而change_column_null完美地工作。

change_column_null :users, :email, true 

當不允許null時,反向有一個很好的選擇來更新現有記錄(但不設置默認值)。

+5

工作中使用'與此相伴change_column_default'如果你想我建議'null'爲默認列值。否則它將是'假'或'0'。 –