Commit 0967e1632564ced2eab52e7e30fc1e25fd9634d7

Authored by Stephen Crosby
2 parents 1ad440bd e66b1321
Exists in master and in 1 other branch production

Merge pull request #986 from keylimetoolbox/restore_extract_issue_trackers_migration

Restore migration to extract issue trackers
db/migrate/201510290041_extract_issue_tracker.rb 0 → 100644
... ... @@ -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
... ...