You can not select more than 25 topics
Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- 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).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
-
- task destroy: :environment do
- count = 0
- Project.where.not(forked_from_project_id: nil).find_each do |project|
- if project.forked_from_project.nil?
- project.update(forked_from_project_id: nil)
- count +=1
- end
- end
- puts "共同步了#{count}个项目"
- end
- end
|