我最初创建的表的列为
t.string "email", :default => "", :null => false
要求已更改,现在我需要允许电子邮件为空。我该如何写一个迁移使:null => true
Answers:
尝试:
change_column :table_name, :email, :string, :null => true
change_column_null
因为这change_column
可能在某些版本中不起作用
我无法使用上述解决方案与Active Record 4.0.8和Postgresql 9.3一起使用
但是change_column_null可以 完美地工作。
change_column_null :users, :email, true
当不允许使用null时,相反的选项可以很好地更新现有记录(但不设置默认值)。
change_column_default
如果您想null
成为默认的列值,建议与之一起使用。否则将为false
或0
。