新增:修复数据rake任务

This commit is contained in:
yystopf 2023-02-20 17:25:07 +08:00
parent cb3bb23e79
commit 4657618753
4 changed files with 89 additions and 23 deletions

View File

@ -20,10 +20,25 @@ class IssueStatus < ApplicationRecord
ADD = 1 ADD = 1
SOLVING = 2 SOLVING = 2
SOLVED = 3 SOLVED = 3
FEEDBACK = 4 # FEEDBACK = 4
CLOSED = 5 CLOSED = 5
REJECTED = 6 REJECTED = 6
has_many :issues has_many :issues
belongs_to :project, optional: true belongs_to :project, optional: true
def self.init_data
map = {
"1" => "新增",
"2" => "正在解决",
"3" => "已解决",
"5" => "关闭",
"6" => "拒绝"
}
IssueStatus.order(id: :asc).each do |stat|
next if map[stat.id] == stat.name
Issue.where(status_id: stat.id).each{|i| i.update_column(:status_id, 1)}
stat.destroy!
end
end
end end

View File

@ -26,4 +26,24 @@ class IssueTag < ApplicationRecord
belongs_to :project, optional: true, counter_cache: true belongs_to :project, optional: true, counter_cache: true
belongs_to :user, optional: true belongs_to :user, optional: true
def self.init_data(project_id)
data = [
["缺陷", "表示项目存在问题", "#d92d4c"],
["功能", "表示新功能申请", "#ee955a"],
["疑问", "表示存在的问题", "#2d6ddc"],
["支持", "表示特定功能或特定需求", "#019549"],
["任务", "表示需要分配的任务", "#01a30d"],
["协助", "表示需要社区用户协助", "#2a0dc1"],
["搁置", "表示此问题不会继续处理", "#892794"],
["文档", "表示文档材料补充", "#9ed600"],
["测试", "表示需要测试的需求", "#2897b9"],
["重复", "表示已存在类似的疑修", "#bb5332"]
]
data.each do |item|
next if IssueTag.exists?(project_id: project_id, name: item[0])
IssueTag.create!(project_id: project_id, name: item[0], description: item[1], color: item[2])
end
end
end end

View File

@ -1,22 +0,0 @@
# 执行示例 bundle exec rake sync_version_issues:update_issues
# 线上环境执行示例 RAILS_ENV=production bundle exec rake sync_version_issues:update_issues
namespace :fix_issue_project_issues_index do
desc "update issue project_issues_index"
task update_issues: :environment do
puts "____________fix start________________"
Issue.update_all(project_issues_index: nil)
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|
issue.update_column(:project_issues_index, index+1)
end
end
puts "____________fix end________________"
end
end

View File

@ -0,0 +1,53 @@
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________________"
IssueStatus.init_data
IssueTag.where(user_id: nil).destroy_all
count = 0
Project.order(created_at: :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:move_assigned_to_id_to_assigners
# 线上环境执行示例 RAILS_ENV=production bundle exec rake upgrade_issue_generate_data:move_assigned_to_id_to_assigners
desc "upgrade_issue_generate_data: fix issue assigner to assigners"
task move_assigned_to_id_to_assigners: :environment do
puts "____________fix start________________"
count = 0
Issue.where.not(assigned_to_id: nil).find_each do |issue|
count += 1
issue.assigners = User.where(id: issue.assigned_to_id)
end
puts "____________fix end____total:#{count}__________"
end
end