Rails-迁移不会引发错误,但是也不会执行所需的迁移

时间:2019-08-20 22:25:17

标签: ruby-on-rails ruby-on-rails-5

我写了一个迁移,其中我想删除一些符合条件的数据库条目。

这是我在迁移文件中的代码。

class RemoveRedundantVersions < ActiveRecord::Migration[5..1]
  def up
    delete_version_entries
  end

  def down; end

  def delete_version_entries
     # Checks some conditions and delete objects
  end
end

rails db:migrate上,这是输出:

== 20190726055203 RemoveRedundantVersions: migrating ==========================
== 20190726055203 RemoveRedundantVersions: migrated (12.2631s) ================

rails db:migrate:status上,这是我看到的:

down     20190726055203  Remove redundant versions

由于某种原因,迁移无法成功,并退回到down方法。因此,当我重新运行rails db:migrate时,rails将重试相同的迁移。

我在这里处理的db表有很多条目,例如超过250万个条目。查询它们是否可能是超时问题?

我知道并且正在使用for_each进行数据库查询,因此迁移一次可以在一小部分数据上运行。

有人能想到此迁移未能完成所需工作的原因吗?

0 个答案:

没有答案