forgeplus/lib/tasks/upgrade_issue_generate_data...

60 lines
2.5 KiB
Ruby
Raw Permalink Normal View History

2023-02-20 17:25:07 +08:00
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________________"
2023-02-27 15:17:10 +08:00
Issue.issue_issue.update_all(project_issues_index: nil)
2023-02-20 17:25:07 +08:00
count = 0
2023-02-27 15:17:10 +08:00
Issue.issue_issue.where(project_issues_index: nil).group(:project_id).count.each do |pid, count|
2023-02-20 17:25:07 +08:00
p = Project.find_by_id(pid)
2023-09-01 15:55:42 +08:00
next if p.blank?
2023-02-20 17:25:07 +08:00
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
2023-02-20 17:25:07 +08:00
IssueStatus.init_data
IssueTag.order(created_at: :desc).find_each do |it|
2023-02-24 14:32:21 +08:00
it.reset_counter_field
end
2023-02-20 17:25:07 +08:00
IssueTag.where(user_id: nil).destroy_all
count = 0
Project.order(created_on: :desc).find_each do |project|
2023-02-20 17:25:07 +08:00
count += 1
IssueTag.init_data(project.id)
end
puts "____________fix end____total:#{count}__________"
end
2023-02-22 09:55:05 +08:00
# 执行示例 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"
2023-02-20 17:25:07 +08:00
2023-02-22 09:55:05 +08:00
task build_assigners_and_participants: :environment do
2023-02-20 17:25:07 +08:00
puts "____________fix start________________"
count = 0
2023-02-22 09:57:39 +08:00
Issue.order(created_on: :desc).find_each do |issue|
2023-02-20 17:25:07 +08:00
count += 1
2023-02-22 09:55:05 +08:00
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')
2023-02-20 17:25:07 +08:00
end
puts "____________fix end____total:#{count}__________"
end
end