88

私はもともと次の列を持つテーブルを作成していました

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

要件が変更されたため、メールを null にする必要があります。:null => true にする移行を作成するにはどうすればよいですか

4

2 に答える 2

123

上記のソリューションを Active Record 4.0.8 および Postgresql 9.3 で動作させることができませんでした

ただし、change_column_null は完全に機能しました。

change_column_null :users, :email, true

逆に、null が許可されていない場合に既存のレコードを更新するための優れたオプションがあります (ただし、デフォルトは設定されません)。

于 2014-08-20T07:21:21.227 に答える
109

試す:

change_column :table_name, :email, :string, null: true
于 2012-06-05T17:02:15.257 に答える