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