88

我最初创建了一个表,其列为

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

要求已更改,现在我需要允许电子邮件为空。如何编写迁移以使 :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 回答