forked from Gitlink/forgeplus
28 lines
1.0 KiB
Ruby
28 lines
1.0 KiB
Ruby
# 执行示例 bundle exec rake sync_version_issues:update_issues
|
|
# 线上环境执行示例 RAILS_ENV=production bundle exec rake sync_version_issues:update_issues
|
|
|
|
namespace :sync_version_issues do
|
|
desc "update version issues_count"
|
|
|
|
task update_issues: :environment do
|
|
puts "____________sync start________________"
|
|
|
|
Version.all.each do |q|
|
|
puts "______########{q.id}"
|
|
issues = Issue.select(:id, :fixed_version_id,:status_id).where(fixed_version_id: q.id)
|
|
issues_count = issues.size
|
|
closed_issues_count = issues.where(status_id: 5).size
|
|
percent = issues_count == 0 ? 0.0 : (closed_issues_count.to_f / issues_count)
|
|
|
|
begin
|
|
q.update!(closed_issues_count: closed_issues_count, percent: percent)
|
|
Version.update_counters q.id,issues_count: issues_count
|
|
puts "____issues_count__########{q.issues_count}"
|
|
rescue Exception => e
|
|
puts "#####_______save_error______######{e}"
|
|
end
|
|
end
|
|
puts "____________sync end________________"
|
|
end
|
|
|
|
end |