namespace :refactor_project_trend do desc "refactor project trend data record" task issue_and_pull_request: :environment do puts "========DELETE all old data begin========" old_data_count = ProjectTrend.where(trend_type: ["PullRequest","Issue"]).destroy_all.size puts "========DELETE all old data #{old_data_count}========" puts "========DELETE all old data end========" puts "========CREATE new issue data begin========" issue_count = 0 Issue.issue_issue.find_each do |issue| issue_count += 1 issue.project_trends.create(user_id: issue.assigned_to_id || issue.author_id, project_id: issue.project_id, action_type: ProjectTrend::CLOSE, created_at: issue.updated_on) if issue.status_id == 5 issue.project_trends.create(user_id: issue.author_id, project_id: issue.project_id, action_type: ProjectTrend::CREATE, created_at: issue.created_on) end puts "========CREATE new issue data #{issue_count}========" puts "========CREATE new issue data end========" puts "========CREATE new pull_request data begin========" pull_request_count = 0 PullRequest.find_each do |pull_request| pull_request_count += 1 pull_request.project_trends.create(user_id: pull_request.user_id, project_id: pull_request.project_id, action_type: ProjectTrend::MERGE, created_at: pull_request.updated_at) if pull_request.status == PullRequest::MERGED pull_request.project_trends.create(user_id: pull_request.user_id, project_id: pull_request.project_id, action_type: ProjectTrend::CLOSE, created_at: pull_request.updated_at) if pull_request.status == PullRequest::CLOSED pull_request.project_trends.create(user_id: pull_request.user_id, project_id: pull_request.project_id, action_type: ProjectTrend::CREATE, created_at: pull_request.created_at) end puts "========CREATE new pull_request data #{pull_request_count}========" puts "========CREATE new pull_request data end========" end end