mongoid_rails_migrations 1.1.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: cc240d64d9693691c9f524848a1c71be452a0e93
4
- data.tar.gz: e9246baeb9bea0b58213b6d488bf503f31840277
2
+ SHA256:
3
+ metadata.gz: 42339e4043e1ab4647e09def69fbc4d2fc674486da3113a83d461696d50d1b0c
4
+ data.tar.gz: ec3472e01a1071ced5db4da967c6c6b1627a4d9219b8abda84b19871514766fa
5
5
  SHA512:
6
- metadata.gz: 8e74c99e75a4b94ff48aa564b99249c91a7e71c28b1ab8c814a0ee675816ce505d750c1c9f20af18f7e71377902c97a9ab5581eebfaf4528301333e72d694326
7
- data.tar.gz: 9b33ed0e64fa3c6d92d2aee5d287f353d673b28c5057c159fd97ea05892697d2644a058f225e4294cce8d1af483d7c571b390edfccea34760c67cbaa1016c0e4
6
+ metadata.gz: 84b7956dcac388376845c973fd0c1744c396fa38bff504257c361bfdda9b6c00b618000f418fb2d20f0c6ffae9a3a1a6649d0ec9728c3639bef583252ad1f620
7
+ data.tar.gz: 54a713f8b7d3c3280e5b83a6233ffa8eecbef7254d20a55b08c705b85342511191fad0e9bd8fcf0162dd8e8ab3ff6b1fca296e58fbe9a779a436f06b1a18b61f
@@ -1,13 +1,9 @@
1
1
  # encoding: utf-8
2
- require 'bundler/setup'
3
- Bundler.require(:mongoid_rails_migrations)
4
2
 
5
- # Add base to path incase not included as a gem
6
- $:.unshift(File.dirname(__FILE__)) unless
7
- $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+ require 'mongoid'
8
4
 
9
5
  require 'mongoid_rails_migrations/version'
10
6
  require 'mongoid_rails_migrations/models/data_migration'
11
7
  require 'mongoid_rails_migrations/mongoid_ext/mongoid'
12
8
  require 'mongoid_rails_migrations/mongoid_ext/railtie'
13
- require 'mongoid_rails_migrations/active_record_ext/migrations'
9
+ require 'mongoid_rails_migrations/active_record_ext/migrations'
@@ -31,14 +31,14 @@ module Mongoid #:nodoc
31
31
 
32
32
  # Data migrations can manage the modification of data. It's a solution to the common problem of modifying
33
33
  # data between code revisions within a document oriented database.
34
- #
34
+ #
35
35
  # Example of simple migration for a system dependency:
36
- #
36
+ #
37
37
  # class AddBaselineSurveySchema < Mongoid::Migration
38
38
  # def self.up
39
39
  # SurveySchema.create(:label => 'Baseline Survey')
40
40
  # end
41
- #
41
+ #
42
42
  # def self.down
43
43
  # SurveySchema.where(:label => 'Baseline Survey').first.destroy
44
44
  # end
@@ -61,7 +61,7 @@ module Mongoid #:nodoc
61
61
  #
62
62
  class Migration
63
63
  @@verbose = true
64
- cattr_accessor :verbose
64
+ cattr_accessor :verbose, :after_migrate, :buffer_output
65
65
 
66
66
  class << self
67
67
  def up_with_benchmarks #:nodoc:
@@ -89,6 +89,12 @@ module Mongoid #:nodoc
89
89
  when :down then announce "reverted (%.4fs)" % time.real; write
90
90
  end
91
91
 
92
+ begin
93
+ @@after_migrate.call(@@buffer_output, name, direction, false) if @@after_migrate
94
+ @@buffer_output = nil
95
+ rescue => e
96
+ say("Error in after_migrate hook: #{e}")
97
+ end
92
98
  result
93
99
  end
94
100
 
@@ -103,7 +109,8 @@ module Mongoid #:nodoc
103
109
 
104
110
  case sym
105
111
  when :up, :down
106
- singleton_class.send(:alias_method_chain, sym, "benchmarks")
112
+ singleton_class.send(:alias_method, "#{sym}_without_benchmarks".to_sym, sym)
113
+ singleton_class.send(:alias_method, sym, "#{sym}_with_benchmarks".to_sym)
107
114
  end
108
115
  ensure
109
116
  @ignore_new_methods = false
@@ -111,6 +118,8 @@ module Mongoid #:nodoc
111
118
  end
112
119
 
113
120
  def write(text="")
121
+ @@buffer_output ||= ""
122
+ @@buffer_output += text + "\n"
114
123
  puts(text) if verbose
115
124
  end
116
125
 
@@ -144,7 +153,11 @@ module Mongoid #:nodoc
144
153
 
145
154
  def connection
146
155
  # ActiveRecord::Base.connection
147
- ::Mongoid.default_session
156
+ if ::Mongoid.respond_to?(:default_client)
157
+ ::Mongoid.default_client
158
+ else
159
+ ::Mongoid.default_session
160
+ end
148
161
  end
149
162
 
150
163
  def method_missing(method, *arguments, &block)
@@ -183,6 +196,8 @@ module Mongoid #:nodoc
183
196
 
184
197
  class Migrator#:nodoc:
185
198
  class << self
199
+ attr_writer :migrations_path
200
+
186
201
  def migrate(migrations_path, target_version = nil)
187
202
  case
188
203
  when target_version.nil? then up(migrations_path, target_version)
@@ -191,10 +206,21 @@ module Mongoid #:nodoc
191
206
  end
192
207
  end
193
208
 
209
+ def status(migrations_path)
210
+ new(:up, migrations_path).status
211
+ end
212
+
194
213
  def rollback(migrations_path, steps=1)
195
214
  move(:down, migrations_path, steps)
196
215
  end
197
216
 
217
+ def rollback_to(migrations_path, target_version)
218
+ all_versions = get_all_versions
219
+ rollback_to = all_versions.index(target_version.to_i) + 1
220
+ rollback_steps = all_versions.size - rollback_to
221
+ rollback migrations_path, rollback_steps
222
+ end
223
+
198
224
  def forward(migrations_path, steps=1)
199
225
  move(:up, migrations_path, steps)
200
226
  end
@@ -212,7 +238,7 @@ module Mongoid #:nodoc
212
238
  end
213
239
 
214
240
  def migrations_path
215
- 'db/migrate'
241
+ @migrations_path ||= ['db/migrate']
216
242
  end
217
243
 
218
244
  # def schema_migrations_table_name
@@ -223,7 +249,7 @@ module Mongoid #:nodoc
223
249
  def get_all_versions
224
250
  # table = Arel::Table.new(schema_migrations_table_name)
225
251
  # Base.connection.select_values(table.project(table['version']).to_sql).map(&:to_i).sort
226
- DataMigration.all.map {|datamigration| datamigration.version.to_i }.sort
252
+ DataMigration.all.map { |datamigration| datamigration.version.to_i }.sort
227
253
  end
228
254
 
229
255
  def current_version
@@ -280,19 +306,7 @@ module Mongoid #:nodoc
280
306
  end
281
307
 
282
308
  def migrate
283
- current = migrations.detect { |m| m.version == current_version }
284
- target = migrations.detect { |m| m.version == @target_version }
285
-
286
- if target.nil? && !@target_version.nil? && @target_version > 0
287
- raise UnknownMigrationVersionError.new(@target_version)
288
- end
289
-
290
- start = up? ? 0 : (migrations.index(current) || 0)
291
- finish = migrations.index(target) || migrations.size - 1
292
- runnable = migrations[start..finish]
293
-
294
- # skip the last migration if we're headed down, but not ALL the way down
295
- runnable.pop if down? && !target.nil?
309
+ runnable = runnable_migrations
296
310
 
297
311
  runnable.each do |migration|
298
312
  Rails.logger.info "Migrating to #{migration.name} (#{migration.version})" if Rails.logger
@@ -319,14 +333,35 @@ module Mongoid #:nodoc
319
333
  migration.migrate(@direction)
320
334
  record_version_state_after_migrating(migration.version)
321
335
  rescue => e
336
+ output = Migration.buffer_output + "An error has occurred, #{migration.version} and all later migrations canceled:\n\n#{e}\n#{e.backtrace.join("\n")}"
337
+ begin
338
+ Migration.after_migrate.call(output, migration.name, @direction, true) if Migration.after_migrate
339
+ Migration.buffer_output = nil
340
+ rescue => error
341
+ puts("Error in after_migrate hook: #{error}")
342
+ end
322
343
  raise StandardError, "An error has occurred, #{migration.version} and all later migrations canceled:\n\n#{e}", e.backtrace
323
344
  end
324
345
  end
325
346
  end
326
347
 
348
+ def status
349
+ database_name = Migration.connection.options[:database]
350
+ puts "\ndatabase: #{database_name}\n\n"
351
+ puts "#{'Status'.center(8)} #{'Migration ID'.ljust(14)} Migration Name"
352
+ puts "-" * 50
353
+ up_migrations = migrated.to_set
354
+ migrations.each do |migration|
355
+ status = up_migrations.include?(migration.version.to_i) ? 'up' : 'down'
356
+ puts "#{status.center(8)} #{migration.version.to_s.ljust(14)} #{migration.name}"
357
+ end
358
+ end
359
+
327
360
  def migrations
328
361
  @migrations ||= begin
329
- files = Dir["#{@migrations_path}/[0-9]*_*.rb"]
362
+ files = Array(@migrations_path).inject([]) do |files, path|
363
+ files += Dir["#{path}/[0-9]*_*.rb"]
364
+ end
330
365
 
331
366
  migrations = files.inject([]) do |klasses, file|
332
367
  version, name = file.scan(/([0-9]+)_([_a-z0-9]*).rb/).first
@@ -359,6 +394,24 @@ module Mongoid #:nodoc
359
394
  migrations.reject { |m| already_migrated.include?(m.version.to_i) }
360
395
  end
361
396
 
397
+ def runnable_migrations
398
+ current = migrations.detect { |m| m.version == current_version }
399
+ target = migrations.detect { |m| m.version == @target_version }
400
+
401
+ if target.nil? && !@target_version.nil? && @target_version > 0
402
+ raise UnknownMigrationVersionError.new(@target_version)
403
+ end
404
+
405
+ start = up? ? 0 : (migrations.index(current) || 0)
406
+ finish = migrations.index(target) || migrations.size - 1
407
+ runnable = migrations[start..finish]
408
+
409
+ # skip the last migration if we're headed down, but not ALL the way down
410
+ runnable.pop if down? && !target.nil?
411
+
412
+ runnable
413
+ end
414
+
362
415
  def migrated
363
416
  @migrated_versions ||= self.class.get_all_versions
364
417
  end
@@ -402,4 +455,4 @@ module Mongoid #:nodoc
402
455
  block.call
403
456
  end
404
457
  end
405
- end
458
+ end
@@ -39,7 +39,7 @@ namespace :db do
39
39
  desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x. Turn off output with VERBOSE=false."
40
40
  task :migrate => :environment do
41
41
  Mongoid::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
42
- Mongoid::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
42
+ Mongoid::Migrator.migrate(Mongoid::Migrator.migrations_path, ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
43
43
  end
44
44
 
45
45
  namespace :migrate do
@@ -62,21 +62,33 @@ namespace :db do
62
62
  task :up => :environment do
63
63
  version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
64
64
  raise "VERSION is required" unless version
65
- Mongoid::Migrator.run(:up, "db/migrate/", version)
65
+ Mongoid::Migrator.run(:up, Mongoid::Migrator.migrations_path, version)
66
66
  end
67
67
 
68
68
  desc 'Runs the "down" for a given migration VERSION.'
69
69
  task :down => :environment do
70
70
  version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
71
71
  raise "VERSION is required" unless version
72
- Mongoid::Migrator.run(:down, "db/migrate/", version)
72
+ Mongoid::Migrator.run(:down, Mongoid::Migrator.migrations_path, version)
73
+ end
74
+
75
+ desc 'Display status of migrations'
76
+ task :status => :environment do
77
+ Mongoid::Migrator.status(Mongoid::Migrator.migrations_path)
73
78
  end
74
79
  end
75
80
 
76
81
  desc 'Rolls the database back to the previous migration. Specify the number of steps with STEP=n'
77
82
  task :rollback => :environment do
78
83
  step = ENV['STEP'] ? ENV['STEP'].to_i : 1
79
- Mongoid::Migrator.rollback('db/migrate/', step)
84
+ Mongoid::Migrator.rollback(Mongoid::Migrator.migrations_path, step)
85
+ end
86
+
87
+ desc 'Rolls the database back to the specified VERSION'
88
+ task :rollback_to => :environment do
89
+ version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
90
+ raise "VERSION is required" unless version
91
+ Mongoid::Migrator.rollback_to(Mongoid::Migrator.migrations_path, version)
80
92
  end
81
93
 
82
94
  namespace :schema do
@@ -90,4 +102,4 @@ namespace :db do
90
102
  # Stub out for MongoDB
91
103
  end
92
104
  end
93
- end
105
+ end
@@ -1,3 +1,3 @@
1
1
  module MongoidRailsMigrations #:nodoc:
2
- VERSION = '1.1.0'
3
- end
2
+ VERSION = '1.4.0'
3
+ end
@@ -1,32 +1,28 @@
1
- require File.join(File.dirname(__FILE__), 'lib', 'mongoid_rails_migrations', 'version')
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'mongoid_rails_migrations/version'
2
4
 
3
- Gem::Specification.new do |s|
4
- s.platform = Gem::Platform::RUBY
5
- s.name = 'mongoid_rails_migrations'
6
- s.version = MongoidRailsMigrations::VERSION
7
- s.summary = 'Data migrations for Mongoid in Active Record style, minus column input.'
8
- s.license = 'MIT'
9
- s.description = 'Migrations for the migrator.'
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'mongoid_rails_migrations'
7
+ spec.version = MongoidRailsMigrations::VERSION
8
+ spec.authors = ['Alan Da Costa']
9
+ spec.email = ['alandacosta@gmail.com']
10
10
 
11
- s.required_ruby_version = '>= 1.8.6'
12
- s.required_rubygems_version = '>= 1.3.6'
11
+ spec.summary = 'Data migrations for Mongoid.'
12
+ spec.description = 'Data migrations for Mongoid in Active Record style, minus column input.'
13
+ spec.homepage = 'http://github.com/adacosta/mongoid_rails_migrations'
14
+ spec.license = 'MIT'
13
15
 
14
- s.author = 'Alan Da Costa'
15
- s.email = 'alandacosta@gmail.com'
16
- s.date = %q{2015-01-01}
17
- s.homepage = 'http://github.com/adacosta/mongoid_rails_migrations'
18
-
19
- s.require_paths = ['lib']
20
- s.files = Dir['.gitignore', 'Gemfile', 'Gemfile.lock', 'Rakefile', 'README.rdoc', 'mongoid_rails_migrations.gemspec', 'lib/**/*']
21
- s.test_files = Dir['test/**/*']
22
- s.has_rdoc = false
16
+ spec.files = Dir['README.rdoc', 'mongoid_rails_migrations.gemspec', 'lib/**/*']
17
+ spec.require_paths = ['lib']
23
18
 
24
19
  rails_version = '>= 4.2.0'
25
20
 
26
- s.add_runtime_dependency('bundler', '>= 1.0.0')
27
- s.add_runtime_dependency('mongoid', '>= 4.0.0')
28
- s.add_runtime_dependency('rails', rails_version)
29
- s.add_runtime_dependency('railties', rails_version)
30
- s.add_runtime_dependency('activesupport', rails_version)
31
- s.add_development_dependency 'rake'
21
+ spec.add_runtime_dependency('bundler', '>= 1.0.0')
22
+ spec.add_runtime_dependency('mongoid', '>= 4.0.0')
23
+ spec.add_runtime_dependency('rails', rails_version)
24
+ spec.add_runtime_dependency('railties', rails_version)
25
+ spec.add_runtime_dependency('activesupport', rails_version)
26
+ spec.add_development_dependency 'rake'
27
+ spec.add_development_dependency 'minitest'
32
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_rails_migrations
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan Da Costa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-01 00:00:00.000000000 Z
11
+ date: 2021-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,17 +94,27 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
- description: Migrations for the migrator.
98
- email: alandacosta@gmail.com
97
+ - !ruby/object:Gem::Dependency
98
+ name: minitest
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Data migrations for Mongoid in Active Record style, minus column input.
112
+ email:
113
+ - alandacosta@gmail.com
99
114
  executables: []
100
115
  extensions: []
101
116
  extra_rdoc_files: []
102
117
  files:
103
- - ".gitignore"
104
- - Gemfile
105
- - Gemfile.lock
106
- - README.rdoc
107
- - Rakefile
108
118
  - lib/mongoid_rails_migrations.rb
109
119
  - lib/mongoid_rails_migrations/active_record_ext/migrations.rb
110
120
  - lib/mongoid_rails_migrations/models/data_migration.rb
@@ -116,16 +126,6 @@ files:
116
126
  - lib/rails/generators/mongoid/migration/templates/migration.rb
117
127
  - lib/rails/generators/mongoid/mongoid_generator.rb
118
128
  - mongoid_rails_migrations.gemspec
119
- - test/config.rb
120
- - test/helper.rb
121
- - test/migration_test.rb
122
- - test/migrations/duplicate/names/20100513073457_add_duplicate_survey_schema.rb
123
- - test/migrations/duplicate/names/20100513073724_add_duplicate_survey_schema.rb
124
- - test/migrations/duplicate/versions/20100513073457_add_another_duplicate_survey_schema.rb
125
- - test/migrations/duplicate/versions/20100513073457_add_duplicate_survey_schema.rb
126
- - test/migrations/valid/20100513054656_add_baseline_survey_schema.rb
127
- - test/migrations/valid/20100513063902_add_improvement_plan_survey_schema.rb
128
- - test/models/survey_schema.rb
129
129
  homepage: http://github.com/adacosta/mongoid_rails_migrations
130
130
  licenses:
131
131
  - MIT
@@ -138,26 +138,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
138
138
  requirements:
139
139
  - - ">="
140
140
  - !ruby/object:Gem::Version
141
- version: 1.8.6
141
+ version: '0'
142
142
  required_rubygems_version: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - ">="
145
145
  - !ruby/object:Gem::Version
146
- version: 1.3.6
146
+ version: '0'
147
147
  requirements: []
148
- rubyforge_project:
149
- rubygems_version: 2.2.2
148
+ rubygems_version: 3.1.2
150
149
  signing_key:
151
150
  specification_version: 4
152
- summary: Data migrations for Mongoid in Active Record style, minus column input.
153
- test_files:
154
- - test/config.rb
155
- - test/helper.rb
156
- - test/migration_test.rb
157
- - test/migrations/duplicate/names/20100513073457_add_duplicate_survey_schema.rb
158
- - test/migrations/duplicate/names/20100513073724_add_duplicate_survey_schema.rb
159
- - test/migrations/duplicate/versions/20100513073457_add_another_duplicate_survey_schema.rb
160
- - test/migrations/duplicate/versions/20100513073457_add_duplicate_survey_schema.rb
161
- - test/migrations/valid/20100513054656_add_baseline_survey_schema.rb
162
- - test/migrations/valid/20100513063902_add_improvement_plan_survey_schema.rb
163
- - test/models/survey_schema.rb
151
+ summary: Data migrations for Mongoid.
152
+ test_files: []
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- .bundle
2
- .DS_Store
3
- .rvmrc
4
- .idea
5
- log/
6
- .ruby-version
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- source "http://rubygems.org"
2
- gemspec :name => 'mongoid_rails_migrations'
3
-
4
- group :test do
5
- gem 'minitest'
6
- gem 'pry'
7
- gem 'rake'
8
- end
@@ -1,137 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- mongoid_rails_migrations (1.1.0)
5
- activesupport (>= 4.2.0)
6
- bundler (>= 1.0.0)
7
- mongoid (>= 4.0.0)
8
- rails (>= 4.2.0)
9
- railties (>= 4.2.0)
10
-
11
- GEM
12
- remote: http://rubygems.org/
13
- specs:
14
- actionmailer (4.2.0)
15
- actionpack (= 4.2.0)
16
- actionview (= 4.2.0)
17
- activejob (= 4.2.0)
18
- mail (~> 2.5, >= 2.5.4)
19
- rails-dom-testing (~> 1.0, >= 1.0.5)
20
- actionpack (4.2.0)
21
- actionview (= 4.2.0)
22
- activesupport (= 4.2.0)
23
- rack (~> 1.6.0)
24
- rack-test (~> 0.6.2)
25
- rails-dom-testing (~> 1.0, >= 1.0.5)
26
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
27
- actionview (4.2.0)
28
- activesupport (= 4.2.0)
29
- builder (~> 3.1)
30
- erubis (~> 2.7.0)
31
- rails-dom-testing (~> 1.0, >= 1.0.5)
32
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
33
- activejob (4.2.0)
34
- activesupport (= 4.2.0)
35
- globalid (>= 0.3.0)
36
- activemodel (4.2.0)
37
- activesupport (= 4.2.0)
38
- builder (~> 3.1)
39
- activerecord (4.2.0)
40
- activemodel (= 4.2.0)
41
- activesupport (= 4.2.0)
42
- arel (~> 6.0)
43
- activesupport (4.2.0)
44
- i18n (~> 0.7)
45
- json (~> 1.7, >= 1.7.7)
46
- minitest (~> 5.1)
47
- thread_safe (~> 0.3, >= 0.3.4)
48
- tzinfo (~> 1.1)
49
- arel (6.0.0)
50
- bson (2.3.0)
51
- builder (3.2.2)
52
- coderay (1.1.0)
53
- connection_pool (2.1.0)
54
- erubis (2.7.0)
55
- globalid (0.3.0)
56
- activesupport (>= 4.1.0)
57
- hike (1.2.3)
58
- i18n (0.7.0)
59
- json (1.8.1)
60
- loofah (2.0.1)
61
- nokogiri (>= 1.5.9)
62
- mail (2.6.3)
63
- mime-types (>= 1.16, < 3)
64
- method_source (0.8.2)
65
- mime-types (2.4.3)
66
- mini_portile (0.6.2)
67
- minitest (5.5.0)
68
- mongoid (4.0.0)
69
- activemodel (~> 4.0)
70
- moped (~> 2.0.0)
71
- origin (~> 2.1)
72
- tzinfo (>= 0.3.37)
73
- moped (2.0.2)
74
- bson (~> 2.2)
75
- connection_pool (~> 2.0)
76
- optionable (~> 0.2.0)
77
- multi_json (1.10.1)
78
- nokogiri (1.6.5)
79
- mini_portile (~> 0.6.0)
80
- optionable (0.2.0)
81
- origin (2.1.1)
82
- pry (0.10.1)
83
- coderay (~> 1.1.0)
84
- method_source (~> 0.8.1)
85
- slop (~> 3.4)
86
- rack (1.6.0)
87
- rack-test (0.6.2)
88
- rack (>= 1.0)
89
- rails (4.2.0)
90
- actionmailer (= 4.2.0)
91
- actionpack (= 4.2.0)
92
- actionview (= 4.2.0)
93
- activejob (= 4.2.0)
94
- activemodel (= 4.2.0)
95
- activerecord (= 4.2.0)
96
- activesupport (= 4.2.0)
97
- bundler (>= 1.3.0, < 2.0)
98
- railties (= 4.2.0)
99
- sprockets-rails
100
- rails-deprecated_sanitizer (1.0.3)
101
- activesupport (>= 4.2.0.alpha)
102
- rails-dom-testing (1.0.5)
103
- activesupport (>= 4.2.0.beta, < 5.0)
104
- nokogiri (~> 1.6.0)
105
- rails-deprecated_sanitizer (>= 1.0.1)
106
- rails-html-sanitizer (1.0.1)
107
- loofah (~> 2.0)
108
- railties (4.2.0)
109
- actionpack (= 4.2.0)
110
- activesupport (= 4.2.0)
111
- rake (>= 0.8.7)
112
- thor (>= 0.18.1, < 2.0)
113
- rake (10.4.2)
114
- slop (3.6.0)
115
- sprockets (2.12.3)
116
- hike (~> 1.2)
117
- multi_json (~> 1.0)
118
- rack (~> 1.0)
119
- tilt (~> 1.1, != 1.3.0)
120
- sprockets-rails (2.2.2)
121
- actionpack (>= 3.0)
122
- activesupport (>= 3.0)
123
- sprockets (>= 2.8, < 4.0)
124
- thor (0.19.1)
125
- thread_safe (0.3.4)
126
- tilt (1.4.1)
127
- tzinfo (1.2.2)
128
- thread_safe (~> 0.1)
129
-
130
- PLATFORMS
131
- ruby
132
-
133
- DEPENDENCIES
134
- minitest
135
- mongoid_rails_migrations!
136
- pry
137
- rake
@@ -1,56 +0,0 @@
1
- == RELEASE NOTES
2
- * The most current release, 1.1.x, targets Mongoid >= 4.0.0 and Rails >= 4.2.0 .
3
- * For Rails >= 3.2.0 and Mongoid >= 3.0.0, use version 1.0.0 .
4
- * For Rails >= 3.0.0 (but < 3.2.0) and Mongoid >= 2.0.0, use version 0.0.14 .
5
-
6
- == SYNOPSIS
7
- * Data migrations for Mongoid.
8
-
9
- == MIGRATE WHEN ...
10
- * The migrating is good
11
-
12
- == INSTALL
13
- * gem install mongoid_rails_migrations
14
- * In your Gemfile, include (after including mongoid):
15
- gem "mongoid_rails_migrations", <version>
16
-
17
- == FEATURES AND HOW TO USE
18
- * generator:
19
- * rails generate mongoid:migration your_migration_name_here
20
-
21
- * migrations:
22
- * db:migrate
23
- * db:migrate:down
24
- * db:migrate:up
25
- * db:rollback
26
- * db:migrate:redo
27
- * db:migrate:reset
28
- * db:reseed (handled by mongoid)
29
- * db:version
30
-
31
- == TESTING
32
- ```rake test:mongoid:migrations```
33
-
34
- == CREDITS TO
35
- * rails
36
- * mongoid
37
- * contributions from the community (git log)
38
-
39
- Much of this gem simply modifies existing code from both projects.
40
- With that out of the way, on to the license.
41
-
42
- == LICENSE (MIT)
43
-
44
- Copyright © 2013: Alan Da Costa
45
-
46
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'),
47
- to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish,
48
- distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to
49
- the following conditions:
50
-
51
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
52
-
53
- The software is provided 'as is', without warranty of any kind, express or implied, including but not limited to the warranties of
54
- merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any
55
- claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the
56
- software or the use or other dealings in the software.
data/Rakefile DELETED
@@ -1,12 +0,0 @@
1
- $:.unshift(File.dirname(__FILE__))
2
-
3
- task :default => ['test:mongoid:migrations']
4
-
5
- namespace :test do
6
- namespace :mongoid do
7
- desc "Test mongoid rails migrations"
8
- task :migrations do
9
- load 'test/migration_test.rb'
10
- end
11
- end
12
- end
@@ -1,9 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '..', 'lib', 'mongoid_rails_migrations')
2
- require File.join(File.dirname(__FILE__), '..', 'lib', 'rails', 'generators', 'mongoid', 'mongoid_generator')
3
-
4
- Mongoid.configure.connect_to('mongoid_test')
5
-
6
- # require all models
7
- Dir[File.join(File.dirname(__FILE__), 'models', '*.rb')].each { |file| require file }
8
-
9
- MIGRATIONS_ROOT = File.join(File.dirname(__FILE__), 'migrations')
@@ -1,34 +0,0 @@
1
- $:.unshift(File.dirname(__FILE__))
2
-
3
- require 'bundler/setup'
4
- Bundler.require(:test)
5
-
6
- require 'mongoid'
7
- require 'config'
8
- require 'minitest/autorun'
9
- require 'rake'
10
- require 'rake/testtask'
11
- require 'rdoc/task'
12
-
13
- # leave out active_record, in favor of a monogo adapter
14
- %w(
15
- action_controller
16
- action_mailer
17
- active_resource
18
- rails/test_unit
19
- mongoid
20
- ).each do |framework|
21
- begin
22
- require "#{framework}/railtie"
23
- rescue LoadError
24
- end
25
- end
26
-
27
-
28
- ActiveSupport.test_order = :sorted if ActiveSupport.respond_to?(:test_order)
29
-
30
- module TestMongoidRailsMigrations
31
- class Application < Rails::Application; end
32
- end
33
-
34
- TestMongoidRailsMigrations::Application.load_tasks
@@ -1,141 +0,0 @@
1
- require File.dirname(__FILE__) + '/helper'
2
-
3
- class Mongoid::Migration
4
- class <<self
5
- attr_accessor :message_count
6
-
7
- def puts(text="")
8
- self.message_count ||= 0
9
- self.message_count += 1
10
- end
11
- end
12
- end
13
-
14
- module Mongoid
15
- class TestCase < ActiveSupport::TestCase #:nodoc:
16
-
17
- def setup
18
- Mongoid::Migration.verbose = true
19
- # same as db:drop command in lib/mongoid_rails_migrations/mongoid_ext/railties/database.rake
20
- Mongoid.default_session.drop
21
- end
22
-
23
- def teardown; end
24
-
25
- def test_drop_works
26
- assert_equal 0, Mongoid::Migrator.current_version, "db:drop should take us down to version 0"
27
- end
28
-
29
- def test_finds_migrations
30
- assert Mongoid::Migrator.new(:up, MIGRATIONS_ROOT + "/valid").migrations.size == 2
31
- assert_equal 2, Mongoid::Migrator.new(:up, MIGRATIONS_ROOT + "/valid").pending_migrations.size
32
- end
33
-
34
- def test_migrator_current_version
35
- Mongoid::Migrator.migrate(MIGRATIONS_ROOT + "/valid", 20100513054656)
36
- assert_equal(20100513054656, Mongoid::Migrator.current_version)
37
- end
38
-
39
- def test_migrator
40
- assert SurveySchema.first.nil?, "All SurveySchemas should be clear before migration run"
41
-
42
- Mongoid::Migrator.up(MIGRATIONS_ROOT + "/valid")
43
-
44
- assert_equal 20100513063902, Mongoid::Migrator.current_version
45
- assert !SurveySchema.first.nil?
46
-
47
- Mongoid::Migrator.down(MIGRATIONS_ROOT + "/valid")
48
- assert_equal 0, Mongoid::Migrator.current_version
49
-
50
- assert SurveySchema.create(:label => 'Questionable Survey')
51
- assert_equal 1, SurveySchema.all.size
52
- end
53
-
54
- def test_migrator_two_up_and_one_down
55
- assert SurveySchema.where(:label => 'Baseline Survey').first.nil?
56
- assert_equal 0, SurveySchema.all.size
57
-
58
- Mongoid::Migrator.up(MIGRATIONS_ROOT + "/valid", 20100513054656)
59
-
60
- assert !SurveySchema.where(:label => 'Baseline Survey').first.nil?
61
- assert_equal 1, SurveySchema.all.size
62
-
63
- assert SurveySchema.where(:label => 'Improvement Plan Survey').first.nil?
64
-
65
- Mongoid::Migrator.up(MIGRATIONS_ROOT + "/valid", 20100513063902)
66
- assert_equal 20100513063902, Mongoid::Migrator.current_version
67
-
68
- assert !SurveySchema.where(:label => 'Improvement Plan Survey').first.nil?
69
- assert_equal 2, SurveySchema.all.size
70
-
71
- Mongoid::Migrator.down(MIGRATIONS_ROOT + "/valid", 20100513054656)
72
- assert_equal 20100513054656, Mongoid::Migrator.current_version
73
-
74
- assert SurveySchema.where(:label => 'Improvement Plan Survey').first.nil?
75
- assert !SurveySchema.where(:label => 'Baseline Survey').first.nil?
76
- assert_equal 1, SurveySchema.all.size
77
- end
78
-
79
- def test_finds_pending_migrations
80
- Mongoid::Migrator.up(MIGRATIONS_ROOT + "/valid", 20100513054656)
81
- pending_migrations = Mongoid::Migrator.new(:up, MIGRATIONS_ROOT + "/valid").pending_migrations
82
-
83
- assert_equal 1, pending_migrations.size
84
- assert_equal pending_migrations[0].version, 20100513063902
85
- assert_equal pending_migrations[0].name, 'AddImprovementPlanSurveySchema'
86
- end
87
-
88
- def test_migrator_rollback
89
- Mongoid::Migrator.migrate(MIGRATIONS_ROOT + "/valid")
90
- assert_equal(20100513063902, Mongoid::Migrator.current_version)
91
-
92
- Mongoid::Migrator.rollback(MIGRATIONS_ROOT + "/valid")
93
- assert_equal(20100513054656, Mongoid::Migrator.current_version)
94
-
95
- Mongoid::Migrator.rollback(MIGRATIONS_ROOT + "/valid")
96
- assert_equal(0, Mongoid::Migrator.current_version)
97
- end
98
-
99
- def test_migrator_forward
100
- Mongoid::Migrator.migrate(MIGRATIONS_ROOT + "/valid", 20100513054656)
101
- assert_equal(20100513054656, Mongoid::Migrator.current_version)
102
-
103
- Mongoid::Migrator.forward(MIGRATIONS_ROOT + "/valid", 20100513063902)
104
- assert_equal(20100513063902, Mongoid::Migrator.current_version)
105
- end
106
-
107
- def test_migrator_with_duplicate_names
108
- assert_raise(Mongoid::DuplicateMigrationNameError) do
109
- Mongoid::Migrator.migrate(MIGRATIONS_ROOT + "/duplicate/names", nil)
110
- end
111
- end
112
-
113
- def test_migrator_with_duplicate_versions
114
- assert_raise(Mongoid::DuplicateMigrationVersionError) do
115
- Mongoid::Migrator.migrate(MIGRATIONS_ROOT + "/duplicate/versions", nil)
116
- end
117
- end
118
-
119
- def test_migrator_with_missing_version_numbers
120
- assert_raise(Mongoid::UnknownMigrationVersionError) do
121
- Mongoid::Migrator.migrate(MIGRATIONS_ROOT + "/valid", 500)
122
- end
123
- end
124
-
125
- def test_default_state_of_timestamped_migrations
126
- assert Mongoid.configure.timestamped_migrations, "Mongoid.configure.timestamped_migrations should default to true"
127
- end
128
-
129
- def test_timestamped_migrations_generates_non_sequential_next_number
130
- next_number = Mongoid::Generators::Base.next_migration_number(MIGRATIONS_ROOT + "/valid")
131
- assert_not_equal "20100513063903", next_number
132
- end
133
-
134
- def test_turning_off_timestamped_migrations
135
- Mongoid.configure.timestamped_migrations = false
136
- next_number = Mongoid::Generators::Base.next_migration_number(MIGRATIONS_ROOT + "/valid")
137
- assert_equal "20100513063903", next_number
138
- end
139
-
140
- end
141
- end
@@ -1,9 +0,0 @@
1
- class AddDuplicateSurveySchema < Mongoid::Migration
2
- def self.up
3
- SurveySchema.create(:label => 'Duplicate Survey')
4
- end
5
-
6
- def self.down
7
- SurveySchema.where(:label => 'Duplicate Survey').first.destroy
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class AddDuplicateSurveySchema < Mongoid::Migration
2
- def self.up
3
- SurveySchema.create(:label => 'Duplicate Survey')
4
- end
5
-
6
- def self.down
7
- SurveySchema.where(:label => 'Duplicate Survey').first.destroy
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class AddDuplicateSurveySchema < Mongoid::Migration
2
- def self.up
3
- SurveySchema.create(:label => 'Duplicate Survey')
4
- end
5
-
6
- def self.down
7
- SurveySchema.where(:label => 'Duplicate Survey').first.destroy
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class AddDuplicateSurveySchema < Mongoid::Migration
2
- def self.up
3
- SurveySchema.create(:label => 'Duplicate Survey')
4
- end
5
-
6
- def self.down
7
- SurveySchema.where(:label => 'Duplicate Survey').first.destroy
8
- end
9
- end
@@ -1,10 +0,0 @@
1
- class AddBaselineSurveySchema < Mongoid::Migration
2
- def self.up
3
- SurveySchema.create(:id => '4c47bf87f3395c339c000001',
4
- :label => 'Baseline Survey')
5
- end
6
-
7
- def self.down
8
- SurveySchema.where(:label => 'Baseline Survey').first.destroy
9
- end
10
- end
@@ -1,9 +0,0 @@
1
- class AddImprovementPlanSurveySchema < Mongoid::Migration
2
- def self.up
3
- SurveySchema.create(:label => 'Improvement Plan Survey')
4
- end
5
-
6
- def self.down
7
- SurveySchema.where(:label => 'Improvement Plan Survey').first.destroy
8
- end
9
- end
@@ -1,6 +0,0 @@
1
- class SurveySchema
2
- include Mongoid::Document
3
- include Mongoid::Timestamps
4
-
5
- field :label
6
- end