首页 > 解决方案 > 从 mongodb 中删除所有 errbit 错误的最快方法是什么?

问题描述

我想从 errbit 重新开始——我们的 mongodb 数据库中有数百万条记录,我们还没有清理它们。我想重新开始,但我不想丢失我的用户帐户。

我尝试运行这些例程(https://mensfeld.pl/2015/01/making-errbit-work-faster-by-keeping-it-clean-and-tidy/):

bundle exec rake errbit:clear_resolved
desc 'Resolves problems that didnt occur for 2 weeks'
task :cleanup => :environment do
  offset = 2.weeks.ago
  Problem.where(:updated_at.lt => offset).map(&:resolve!)
  Notice.where(:updated_at.lt => offset).destroy_all
end

但第二个(删除超过 2 周的问题和通知)似乎永远运行。通过 mongo shell 查询问题和通知集合似乎没有显示任何被删除...我们使用的是 errbit V 0.7.0-dev 和 mongodb 版本 3.2.22。

标签: ruby-on-railsmongodberrbit

解决方案


最快的方法是获取一个 mongo 控制台并删除大部分集合。我会说停止你的 errbit 服务器,获取一个 mongo 控制台,连接到你使用的数据库并运行:

> db.errs.drop()
true
> db.problems.drop()
true
> db.backtraces.drop()
true
> db.notices.drop()
true
> db.comments.drop()

推荐阅读