使用迁移将change_column从可空变为非空的有效方法?

时间:2012-06-18 05:27:14

标签: ruby ruby-on-rails-3

我有一个模型,它有几个可以为空的列,由于额外的工作,需要一些列现在是非空的。

我遇到的问题是存在外键约束。有可选的关联,现在不是可选的。

我有很多空白关联数据需要关联。建议?

自:

  t.integer :user_id,  :null => true
  t.integer :place_id, :null => true

要:

change_column :hotel, :user_id, :integer,     :null => false
change_column :hotel, :place_id, :integer,    :null => false

我知道我可以使用:default => val选项,但在此切换期间我还应该考虑其他什么吗?

1 个答案:

答案 0 :(得分:1)

创建一个单独的迁移,将关联数据链接到现有记录,并确保命名迁移,以便在运行之前运行:null => false约束。