From 312fca7e2bcf6f9792a6c420bab3ba5ff8e58971 Mon Sep 17 00:00:00 2001 From: viletyy Date: Thu, 1 Jul 2021 17:55:48 +0800 Subject: [PATCH] fix: update shell simple --- lib/tasks/sync_projects_by_forked_project.rake | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/tasks/sync_projects_by_forked_project.rake b/lib/tasks/sync_projects_by_forked_project.rake index 0e7876974..d6cd1f210 100644 --- a/lib/tasks/sync_projects_by_forked_project.rake +++ b/lib/tasks/sync_projects_by_forked_project.rake @@ -2,9 +2,13 @@ namespace :sync_projects_by_forked_project do desc "sync projects is_public by forked project" task is_public: :environment do count = 0 - Project.where.not(forked_from_project_id: nil).find_each do |project| - project.update(is_public: project&.forked_from_project&.is_public) - count +=1 + Project.where.not(forked_from_project_id: nil).group(:forked_from_project_id).count.each do |k, _| + project = Project.find_by_id(k) + need_update_forked_projects = Project.where(forked_from_project_id: k) + need_update_forked_projects.update_all(is_public: project&.is_public) + need_update_forked_repositories = Repository.where(project_id: need_update_forked_projects.ids) + need_update_forked_repositories.update_all(hidden: !project&.is_public) + count +=need_update_forked_projects.size end puts "共同步了#{count}个项目" end