From 70c7b1da0c51fd8e1ae188390d1e4446675a8166 Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Wed, 24 Mar 2021 15:42:57 +0800 Subject: [PATCH] add: auto counter rake --- lib/tasks/sync_count_cache.rake | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 lib/tasks/sync_count_cache.rake diff --git a/lib/tasks/sync_count_cache.rake b/lib/tasks/sync_count_cache.rake new file mode 100644 index 000000000..b32496b95 --- /dev/null +++ b/lib/tasks/sync_count_cache.rake @@ -0,0 +1,15 @@ +namespace :sync_count_cache do + desc "更新项目自动计数字段" + task projects: :environment do + Project.includes(:praise_treads, :fork_users, :issues, :watchers, :issues, :pull_requests, :versions, :issue_tags).find_each do |project| + project.update(forked_count: project.fork_users.size, closed_issues_count: project.issues.where(status_id: 5).size) + + Project.reset_counters(project.id, :praise_treads) + Project.reset_counters(project.id, :watchers) + Project.reset_counters(project.id, :issues) + Project.reset_counters(project.id, :pull_requests) + Project.reset_counters(project.id, :versions) + Project.reset_counters(project.id, :issue_tags) + end + end +end \ No newline at end of file