201510290041_extract_issue_tracker.rb
1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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')
next unless 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
def self.down
end
end