From f9e2e1c0d7694bba55b7d64a2f3f6da5b5450107 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Tue, 17 Jan 2017 15:52:37 -0800 Subject: [PATCH] add script to fix cache counters --- script/fixes/042_fix_user_cache_counters.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 script/fixes/042_fix_user_cache_counters.rb diff --git a/script/fixes/042_fix_user_cache_counters.rb b/script/fixes/042_fix_user_cache_counters.rb new file mode 100644 index 000000000..8040130f3 --- /dev/null +++ b/script/fixes/042_fix_user_cache_counters.rb @@ -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