Commit 0967e1632564ced2eab52e7e30fc1e25fd9634d7
Exists in
master
and in
1 other branch
Merge pull request #986 from keylimetoolbox/restore_extract_issue_trackers_migration
Restore migration to extract issue trackers
Showing
1 changed file
with
46 additions
and
0 deletions
Show diff stats
@@ -0,0 +1,46 @@ | @@ -0,0 +1,46 @@ | ||
1 | +class ExtractIssueTracker < Mongoid::Migration | ||
2 | + | ||
3 | + TRACKER_MAPPING = { | ||
4 | + 'ErrbitTracPlugin::IssueTracker' => 'trac', | ||
5 | + 'IssueTrackers::BitbucketIssuesTracker' => 'bitbucket', | ||
6 | + 'IssueTrackers::FogbugzTracker' => 'fogbugz', | ||
7 | + 'IssueTrackers::GithubIssuesTracker' => 'github', | ||
8 | + 'IssueTrackers::GitlabTracker' => 'gitlab', | ||
9 | + 'IssueTrackers::JiraTracker' => 'jira', | ||
10 | + 'IssueTrackers::LighthouseTracker' => 'lighthouse', | ||
11 | + 'IssueTrackers::PivotalLabsTracker' => 'pivotal', | ||
12 | + 'IssueTrackers::RedmineTracker' => 'redmine', | ||
13 | + 'IssueTrackers::UnfuddleTracker' => 'unfuddle' | ||
14 | + } | ||
15 | + | ||
16 | + def self.up | ||
17 | + App.all.each do |app| | ||
18 | + next unless app.attributes['issue_tracker'].present? | ||
19 | + next unless app.attributes['issue_tracker']['_type'].present? | ||
20 | + | ||
21 | + options = app['issue_tracker'].dup | ||
22 | + options.delete('_type') | ||
23 | + options.delete('_id') | ||
24 | + | ||
25 | + type = app.attributes['issue_tracker']['_type'] | ||
26 | + updated_at = options.delete('updated_at') | ||
27 | + created_at = options.delete('created_at') | ||
28 | + | ||
29 | + if TRACKER_MAPPING.include?(type) | ||
30 | + tracker = { | ||
31 | + 'type_tracker' => TRACKER_MAPPING[type], | ||
32 | + 'options' => options, | ||
33 | + 'updated_at' => updated_at, | ||
34 | + 'created_at' => created_at | ||
35 | + } | ||
36 | + | ||
37 | + App.where({ _id: app.id }).update({ | ||
38 | + "$set" => { :issue_tracker => tracker } | ||
39 | + }) | ||
40 | + end | ||
41 | + end | ||
42 | + end | ||
43 | + | ||
44 | + def self.down | ||
45 | + end | ||
46 | +end |