60 lines
2.6 KiB
Ruby
60 lines
2.6 KiB
Ruby
|
|
|
|
namespace :upgrade_issue_generate_data do
|
|
# 执行示例 bundle exec rake upgrade_issue_generate_data:project_issues_index
|
|
# 线上环境执行示例 RAILS_ENV=production bundle exec rake upgrade_issue_generate_data:project_issues_index
|
|
desc "upgrade_issue_generate_data: fix issue project_issues_index"
|
|
|
|
task project_issues_index: :environment do
|
|
puts "____________fix start________________"
|
|
|
|
Issue.update_all(project_issues_index: nil)
|
|
count = 0
|
|
Issue.where(project_issues_index: nil).group(:project_id).count.each do |pid, count|
|
|
p = Project.find_by_id(pid)
|
|
issues = p.issues.order(created_on: :asc)
|
|
issues.find_each.with_index do |issue, index|
|
|
count += 1
|
|
issue.update_column(:project_issues_index, index+1)
|
|
end
|
|
end
|
|
puts "____________fix end_______total:#{count}_________"
|
|
end
|
|
|
|
# 执行示例 bundle exec rake upgrade_issue_generate_data:project_init_issue_tags_and_status
|
|
# 线上环境执行示例 RAILS_ENV=production bundle exec rake upgrade_issue_generate_data:project_init_issue_tags_and_status
|
|
desc "upgrade_issue_generate_data: fix project init issue_tags"
|
|
|
|
task project_init_issue_tags_and_status: :environment do
|
|
puts "____________fix start________________"
|
|
IssuePriority.init_data
|
|
IssueStatus.init_data
|
|
IssueTag.order(created_at: :desc).find_each do |it|
|
|
it.update_column(:issues_count, it.issue_issues.size)
|
|
it.update_column(:pull_requests_count, it.pull_request_issues.size)
|
|
end
|
|
IssueTag.where(user_id: nil).destroy_all
|
|
count = 0
|
|
Project.order(created_on: :desc).find_each do |project|
|
|
count += 1
|
|
IssueTag.init_data(project.id)
|
|
end
|
|
puts "____________fix end____total:#{count}__________"
|
|
end
|
|
|
|
# 执行示例 bundle exec rake upgrade_issue_generate_data:build_assigners_and_participants
|
|
# 线上环境执行示例 RAILS_ENV=production bundle exec rake upgrade_issue_generate_data:build_assigners_and_participants
|
|
desc "upgrade_issue_generate_data: fix issue assigners and participants"
|
|
|
|
task build_assigners_and_participants: :environment do
|
|
puts "____________fix start________________"
|
|
count = 0
|
|
Issue.order(created_on: :desc).find_each do |issue|
|
|
count += 1
|
|
issue.issue_assigners.find_or_create_by(assigner_id: issue.assigned_to_id)
|
|
issue.issue_participants.find_or_create_by(participant_id: issue.assigned_to_id, participant_type: 'assigned')
|
|
issue.issue_participants.find_or_create_by(participant_id: issue.author_id, participant_type: 'authored')
|
|
end
|
|
puts "____________fix end____total:#{count}__________"
|
|
end
|
|
end |