我已经运行了几次长时间运行的迁移。就像我有一些代码部分更新了很多记录并运行了几分钟到几小时。
我从未尝试取消 (ctrl+c) 迁移,因为我不知道该迁移会发生什么。它会知道迁移已取消吗?该迁移和我的应用程序会发生什么?如果取消后我再次运行 rake db:migrate 会发生什么?
我的一个脚本看起来像这样:
def up
add_column :foo, :bar, :string
Foo.all.each do |f|
f.bar = if f.x
'foo'
else
'bar'
end
f.save
end
remove_column :foo, :something
end
def down
* reverse of up
end
我也在使用 postgres。