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 @@ |
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 | ... | ... |