add script to fix cache counters

This commit is contained in:
r888888888
2017-01-17 15:52:37 -08:00
parent 237c997ae1
commit f9e2e1c0d7

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env ruby
require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment'))
ActiveRecord::Base.connection.execute("set statement_timeout = 0")
User.where("post_upload_count > 0").find_each do |user|
puts "fixing upload count for #{user.name}"
User.where(id: user.id).update_all("post_upload_count = (select count(*) from posts where uploader_id = users.id)")
end
User.where("note_update_count > 0").find_each do |user|
puts "fixing note count for #{user.name}"
User.where(id: user.id).update_all("note_update_count = (select count(*) from note_versions where updater_id = users.id)")
end
User.where("post_update_count > 0").find_each do |user|
puts "fixing update count for #{user.name}"
User.where(id: user.id).update_all("post_update_count = (select count(*) from post_versions where updater_id = users.id)")
end