Commit 8dbfda4566fbf24b73f6173967fb0d0de032d296

Authored by Stephen Crosby
1 parent 9c798492
Exists in master and in 1 other branch production

get migrations running from start to finish

Gemfile.lock
... ... @@ -116,7 +116,7 @@ GEM
116 116 errbit_lighthouse_plugin (0.1.0)
117 117 errbit_plugin (~> 0)
118 118 lighthouse-api (~> 2)
119   - errbit_pivotal_plugin (0.1.0)
  119 + errbit_pivotal_plugin (0.2.0)
120 120 errbit_plugin (~> 0.4, >= 0.4.0)
121 121 pivotal-tracker (~> 0.5, >= 0.5.0)
122 122 errbit_plugin (0.4.0)
... ... @@ -191,7 +191,7 @@ GEM
191 191 railties
192 192 method_source (0.8.2)
193 193 mime-types (1.25.1)
194   - mini_portile (0.6.0)
  194 + mini_portile (0.6.1)
195 195 mongoid (3.1.5)
196 196 activemodel (~> 3.2)
197 197 moped (~> 1.4)
... ... @@ -217,8 +217,8 @@ GEM
217 217 net-ssh (2.7.0)
218 218 net-ssh-gateway (1.2.0)
219 219 net-ssh (>= 2.6.5)
220   - nokogiri (1.6.3.1)
221   - mini_portile (= 0.6.0)
  220 + nokogiri (1.6.4.1)
  221 + mini_portile (~> 0.6.0)
222 222 nokogiri-happymapper (0.5.9)
223 223 nokogiri (~> 1.5)
224 224 oauth (0.4.7)
... ...
db/migrate/20110812135951_move_issue_trackers_to_sti.rb
... ... @@ -5,21 +5,27 @@ class MoveIssueTrackersToSti < Mongoid::Migration
5 5 # All issue trackers now subclass the IssueTracker model,
6 6 # and their class is stored in the '_type' field, which is
7 7 # also aliased to 'type'.
8   - if app.issue_tracker && app.issue_tracker.attributes["issue_tracker_type"]
9   - app.issue_tracker._type = case app.issue_tracker.issue_tracker_type
10   - when 'lighthouseapp'; "LighthouseTracker"
11   - when 'redmine'; "RedmineTracker"
12   - when 'pivotal'; "PivotalLabsTracker"
13   - when 'fogbugz'; "FogbugzTracker"
14   - when 'mingle'; "MingleTracker"
  8 + tracker = app.attributes['issue_tracker']
  9 + if tracker && tracker['issue_tracker_type']
  10 + tracker['_type'] = case tracker['issue_tracker_type']
  11 + when 'lighthouseapp'; "IssueTrackers::LighthouseTracker"
  12 + when 'redmine'; "IssueTrackers::RedmineTracker"
  13 + when 'pivotal'; "IssueTrackers::PivotalLabsTracker"
  14 + when 'fogbugz'; "IssueTrackers::FogbugzTracker"
  15 + when 'mingle'; "IssueTrackers::MingleTracker"
15 16 else; nil
16 17 end
17   - if app.issue_tracker.issue_tracker_type == "none"
18   - app.issue_tracker = nil
  18 +
  19 + if tracker['issue_tracker_type'] == "none"
  20 + App.collection.where({ _id: app.id }).update({
  21 + "$unset" => { :issue_tracker => 1 }
  22 + })
19 23 else
20   - app.issue_tracker.issue_tracker_type = nil
  24 + tracker.delete('issue_tracker_type')
  25 + App.collection.where({ _id: app.id }).update({
  26 + "$set" => { :issue_tracker => tracker }
  27 + })
21 28 end
22   - app.save
23 29 end
24 30 end
25 31 end
... ...
db/migrate/20120603112130_change_github_url_to_github_repo.rb
1 1 class ChangeGithubUrlToGithubRepo < Mongoid::Migration
  2 + def self.normalize_github_repo(repo)
  3 + return if repo.blank?
  4 + github_host = URI.parse(Errbit::Config.github_url).host
  5 + github_host = Regexp.escape(github_host)
  6 + repo.strip!
  7 + repo.sub!(/(git@|https?:\/\/)#{github_host}(\/|:)/, '')
  8 + repo.sub!(/\.git$/, '')
  9 + repo
  10 + end
  11 +
2 12 def self.up
3 13 App.collection.find.update({'$rename' => {'github_url' => 'github_repo'}}, :multi => true, :safe => true)
4 14 App.all.each do |app|
5   - app.send :normalize_github_repo
6   - app.save
  15 + normalized_repo = self.normalize_github_repo(app.attributes['github_repo'])
  16 + App.collection.where({ _id: app.id }).update({
  17 + "$set" => { :github_repo => normalized_repo }
  18 + })
7 19 end
8 20 end
9 21  
... ...
db/migrate/20131011155638_extract_issue_tracker.rb
1 1 class ExtractIssueTracker < Mongoid::Migration
2 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 +
3 16 def self.up
4   - App.collection.find.each do |app|
5   - if app['issue_tracker'] && !app['issue_tracker'].empty?
6   - it = app['issue_tracker']
7   - it['type_tracker'] = app['issue_tracker']['_type']
8   - it['options'] = app['issue_tracker'].dup
9   - it.delete('_type')
10   - App.collection.find(
11   - :_id => app['_id']
12   - ).update(app)
  17 + App.all.each do |app|
  18 + require 'pry'
  19 + binding.pry
  20 + next unless app.attributes['issue_tracker'].present?
  21 + next unless app.attributes['issue_tracker']['_type'].present?
  22 +
  23 + options = app['issue_tracker'].dup
  24 + options.delete('_type')
  25 + options.delete('_id')
  26 +
  27 + _type = app.attributes['issue_tracker']['_type']
  28 + updated_at = options.delete('updated_at')
  29 + created_at = options.delete('created_at')
  30 +
  31 + if TRACKER_MAPPING.include?(_type)
  32 + tracker = {
  33 + 'type_tracker' => TRACKER_MAPPING[_type],
  34 + 'options' => options,
  35 + 'updated_at' => updated_at,
  36 + 'created_at' => created_at
  37 + }
  38 +
  39 + App.collection.where({ _id: app.id }).update({
  40 + "$set" => { :issue_tracker => tracker }
  41 + })
13 42 end
14 43 end
15 44 end
... ...