Commit 8dbfda4566fbf24b73f6173967fb0d0de032d296
1 parent
9c798492
Exists in
master
and in
1 other branch
get migrations running from start to finish
Showing
4 changed files
with
73 additions
and
26 deletions
Show diff stats
Gemfile.lock
@@ -116,7 +116,7 @@ GEM | @@ -116,7 +116,7 @@ GEM | ||
116 | errbit_lighthouse_plugin (0.1.0) | 116 | errbit_lighthouse_plugin (0.1.0) |
117 | errbit_plugin (~> 0) | 117 | errbit_plugin (~> 0) |
118 | lighthouse-api (~> 2) | 118 | lighthouse-api (~> 2) |
119 | - errbit_pivotal_plugin (0.1.0) | 119 | + errbit_pivotal_plugin (0.2.0) |
120 | errbit_plugin (~> 0.4, >= 0.4.0) | 120 | errbit_plugin (~> 0.4, >= 0.4.0) |
121 | pivotal-tracker (~> 0.5, >= 0.5.0) | 121 | pivotal-tracker (~> 0.5, >= 0.5.0) |
122 | errbit_plugin (0.4.0) | 122 | errbit_plugin (0.4.0) |
@@ -191,7 +191,7 @@ GEM | @@ -191,7 +191,7 @@ GEM | ||
191 | railties | 191 | railties |
192 | method_source (0.8.2) | 192 | method_source (0.8.2) |
193 | mime-types (1.25.1) | 193 | mime-types (1.25.1) |
194 | - mini_portile (0.6.0) | 194 | + mini_portile (0.6.1) |
195 | mongoid (3.1.5) | 195 | mongoid (3.1.5) |
196 | activemodel (~> 3.2) | 196 | activemodel (~> 3.2) |
197 | moped (~> 1.4) | 197 | moped (~> 1.4) |
@@ -217,8 +217,8 @@ GEM | @@ -217,8 +217,8 @@ GEM | ||
217 | net-ssh (2.7.0) | 217 | net-ssh (2.7.0) |
218 | net-ssh-gateway (1.2.0) | 218 | net-ssh-gateway (1.2.0) |
219 | net-ssh (>= 2.6.5) | 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 | nokogiri-happymapper (0.5.9) | 222 | nokogiri-happymapper (0.5.9) |
223 | nokogiri (~> 1.5) | 223 | nokogiri (~> 1.5) |
224 | oauth (0.4.7) | 224 | oauth (0.4.7) |
db/migrate/20110812135951_move_issue_trackers_to_sti.rb
@@ -5,21 +5,27 @@ class MoveIssueTrackersToSti < Mongoid::Migration | @@ -5,21 +5,27 @@ class MoveIssueTrackersToSti < Mongoid::Migration | ||
5 | # All issue trackers now subclass the IssueTracker model, | 5 | # All issue trackers now subclass the IssueTracker model, |
6 | # and their class is stored in the '_type' field, which is | 6 | # and their class is stored in the '_type' field, which is |
7 | # also aliased to 'type'. | 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 | else; nil | 16 | else; nil |
16 | end | 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 | else | 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 | end | 28 | end |
22 | - app.save | ||
23 | end | 29 | end |
24 | end | 30 | end |
25 | end | 31 | end |
db/migrate/20120603112130_change_github_url_to_github_repo.rb
1 | class ChangeGithubUrlToGithubRepo < Mongoid::Migration | 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 | def self.up | 12 | def self.up |
3 | App.collection.find.update({'$rename' => {'github_url' => 'github_repo'}}, :multi => true, :safe => true) | 13 | App.collection.find.update({'$rename' => {'github_url' => 'github_repo'}}, :multi => true, :safe => true) |
4 | App.all.each do |app| | 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 | end | 19 | end |
8 | end | 20 | end |
9 | 21 |
db/migrate/20131011155638_extract_issue_tracker.rb
1 | class ExtractIssueTracker < Mongoid::Migration | 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 | def self.up | 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 | end | 42 | end |
14 | end | 43 | end |
15 | end | 44 | end |