From 4d5480f8deed3ad89216d478db734873a4de055b Mon Sep 17 00:00:00 2001 From: Jeremy Wadsack Date: Wed, 28 Oct 2015 16:42:47 -0700 Subject: [PATCH] Restore migration to extract issue trackers --- db/migrate/201510290041_extract_issue_tracker.rb | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+), 0 deletions(-) create mode 100644 db/migrate/201510290041_extract_issue_tracker.rb diff --git a/db/migrate/201510290041_extract_issue_tracker.rb b/db/migrate/201510290041_extract_issue_tracker.rb new file mode 100644 index 0000000..1ff54dd --- /dev/null +++ b/db/migrate/201510290041_extract_issue_tracker.rb @@ -0,0 +1,46 @@ +class ExtractIssueTracker < Mongoid::Migration + + TRACKER_MAPPING = { + 'ErrbitTracPlugin::IssueTracker' => 'trac', + 'IssueTrackers::BitbucketIssuesTracker' => 'bitbucket', + 'IssueTrackers::FogbugzTracker' => 'fogbugz', + 'IssueTrackers::GithubIssuesTracker' => 'github', + 'IssueTrackers::GitlabTracker' => 'gitlab', + 'IssueTrackers::JiraTracker' => 'jira', + 'IssueTrackers::LighthouseTracker' => 'lighthouse', + 'IssueTrackers::PivotalLabsTracker' => 'pivotal', + 'IssueTrackers::RedmineTracker' => 'redmine', + 'IssueTrackers::UnfuddleTracker' => 'unfuddle' + } + + def self.up + App.all.each do |app| + next unless app.attributes['issue_tracker'].present? + next unless app.attributes['issue_tracker']['_type'].present? + + options = app['issue_tracker'].dup + options.delete('_type') + options.delete('_id') + + _type = app.attributes['issue_tracker']['_type'] + updated_at = options.delete('updated_at') + created_at = options.delete('created_at') + + if TRACKER_MAPPING.include?(_type) + tracker = { + 'type_tracker' => TRACKER_MAPPING[_type], + 'options' => options, + 'updated_at' => updated_at, + 'created_at' => created_at + } + + App.where({ _id: app.id }).update({ + "$set" => { :issue_tracker => tracker } + }) + end + end + end + + def self.down + end +end -- libgit2 0.21.2