mongoid_rails_migrations 1.0.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/mongoid_rails_migrations.rb +2 -6
- data/lib/mongoid_rails_migrations/active_record_ext/migrations.rb +68 -23
- data/lib/mongoid_rails_migrations/mongoid_ext/mongoid.rb +2 -4
- data/lib/mongoid_rails_migrations/mongoid_ext/railties/database.rake +17 -5
- data/lib/mongoid_rails_migrations/version.rb +2 -2
- data/mongoid_rails_migrations.gemspec +23 -27
- metadata +54 -79
- data/.gitignore +0 -6
- data/Gemfile +0 -6
- data/Gemfile.lock +0 -104
- data/README.rdoc +0 -52
- data/Rakefile +0 -13
- data/test/config.rb +0 -9
- data/test/helper.rb +0 -33
- data/test/migration_test.rb +0 -141
- data/test/migrations/duplicate/names/20100513073457_add_duplicate_survey_schema.rb +0 -9
- data/test/migrations/duplicate/names/20100513073724_add_duplicate_survey_schema.rb +0 -9
- data/test/migrations/duplicate/versions/20100513073457_add_another_duplicate_survey_schema.rb +0 -9
- data/test/migrations/duplicate/versions/20100513073457_add_duplicate_survey_schema.rb +0 -9
- data/test/migrations/valid/20100513054656_add_baseline_survey_schema.rb +0 -10
- data/test/migrations/valid/20100513063902_add_improvement_plan_survey_schema.rb +0 -9
- data/test/models/survey_schema.rb +0 -6
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8775f1eec59ab5b9b48253d924c225ef8f4a381e25e70b8666f1f5439a8db3d7
|
4
|
+
data.tar.gz: 896306d933de2c622e4ff3465801b300c16287a027edbb70c6881277c4643c41
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bf0e7d1b3827d1c2af5c1c5f564a84a038dc750f7d1834198e7bf9b7e9eba9c6e5d60924c56e799eb23a71c3c972c19bd6f3796a2196d38b6c6f35646990dc51
|
7
|
+
data.tar.gz: e4bad977cedcba39cc704c2ee23a765827a02834a6f45bbc65b52421a2b968f7fb174db82aeccd4b15e778c671a0232dfd65d21d185cb1348387470a04659eb4
|
@@ -1,13 +1,9 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require 'bundler/setup'
|
3
|
-
Bundler.require(:mongoid_rails_migrations)
|
4
2
|
|
5
|
-
|
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
|
65
65
|
|
66
66
|
class << self
|
67
67
|
def up_with_benchmarks #:nodoc:
|
@@ -89,6 +89,11 @@ 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) if @@after_migrate
|
94
|
+
rescue => e
|
95
|
+
say("Error in after_migrate hook: #{e}")
|
96
|
+
end
|
92
97
|
result
|
93
98
|
end
|
94
99
|
|
@@ -103,7 +108,8 @@ module Mongoid #:nodoc
|
|
103
108
|
|
104
109
|
case sym
|
105
110
|
when :up, :down
|
106
|
-
singleton_class.send(:
|
111
|
+
singleton_class.send(:alias_method, "#{sym}_without_benchmarks".to_sym, sym)
|
112
|
+
singleton_class.send(:alias_method, sym, "#{sym}_with_benchmarks".to_sym)
|
107
113
|
end
|
108
114
|
ensure
|
109
115
|
@ignore_new_methods = false
|
@@ -111,6 +117,8 @@ module Mongoid #:nodoc
|
|
111
117
|
end
|
112
118
|
|
113
119
|
def write(text="")
|
120
|
+
@buffer_output ||= ""
|
121
|
+
@buffer_output += text + "\n"
|
114
122
|
puts(text) if verbose
|
115
123
|
end
|
116
124
|
|
@@ -144,7 +152,11 @@ module Mongoid #:nodoc
|
|
144
152
|
|
145
153
|
def connection
|
146
154
|
# ActiveRecord::Base.connection
|
147
|
-
::Mongoid.
|
155
|
+
if ::Mongoid.respond_to?(:default_client)
|
156
|
+
::Mongoid.default_client
|
157
|
+
else
|
158
|
+
::Mongoid.default_session
|
159
|
+
end
|
148
160
|
end
|
149
161
|
|
150
162
|
def method_missing(method, *arguments, &block)
|
@@ -183,6 +195,8 @@ module Mongoid #:nodoc
|
|
183
195
|
|
184
196
|
class Migrator#:nodoc:
|
185
197
|
class << self
|
198
|
+
attr_writer :migrations_path
|
199
|
+
|
186
200
|
def migrate(migrations_path, target_version = nil)
|
187
201
|
case
|
188
202
|
when target_version.nil? then up(migrations_path, target_version)
|
@@ -191,10 +205,21 @@ module Mongoid #:nodoc
|
|
191
205
|
end
|
192
206
|
end
|
193
207
|
|
208
|
+
def status(migrations_path)
|
209
|
+
new(:up, migrations_path).status
|
210
|
+
end
|
211
|
+
|
194
212
|
def rollback(migrations_path, steps=1)
|
195
213
|
move(:down, migrations_path, steps)
|
196
214
|
end
|
197
215
|
|
216
|
+
def rollback_to(migrations_path, target_version)
|
217
|
+
all_versions = get_all_versions
|
218
|
+
rollback_to = all_versions.index(target_version.to_i) + 1
|
219
|
+
rollback_steps = all_versions.size - rollback_to
|
220
|
+
rollback migrations_path, rollback_steps
|
221
|
+
end
|
222
|
+
|
198
223
|
def forward(migrations_path, steps=1)
|
199
224
|
move(:up, migrations_path, steps)
|
200
225
|
end
|
@@ -212,7 +237,7 @@ module Mongoid #:nodoc
|
|
212
237
|
end
|
213
238
|
|
214
239
|
def migrations_path
|
215
|
-
'db/migrate'
|
240
|
+
@migrations_path ||= ['db/migrate']
|
216
241
|
end
|
217
242
|
|
218
243
|
# def schema_migrations_table_name
|
@@ -223,7 +248,7 @@ module Mongoid #:nodoc
|
|
223
248
|
def get_all_versions
|
224
249
|
# table = Arel::Table.new(schema_migrations_table_name)
|
225
250
|
# Base.connection.select_values(table.project(table['version']).to_sql).map(&:to_i).sort
|
226
|
-
DataMigration.all.map {|datamigration| datamigration.version.to_i }.sort
|
251
|
+
DataMigration.all.map { |datamigration| datamigration.version.to_i }.sort
|
227
252
|
end
|
228
253
|
|
229
254
|
def current_version
|
@@ -280,19 +305,7 @@ module Mongoid #:nodoc
|
|
280
305
|
end
|
281
306
|
|
282
307
|
def migrate
|
283
|
-
|
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?
|
308
|
+
runnable = runnable_migrations
|
296
309
|
|
297
310
|
runnable.each do |migration|
|
298
311
|
Rails.logger.info "Migrating to #{migration.name} (#{migration.version})" if Rails.logger
|
@@ -324,9 +337,23 @@ module Mongoid #:nodoc
|
|
324
337
|
end
|
325
338
|
end
|
326
339
|
|
340
|
+
def status
|
341
|
+
database_name = Migration.connection.options[:database]
|
342
|
+
puts "\ndatabase: #{database_name}\n\n"
|
343
|
+
puts "#{'Status'.center(8)} #{'Migration ID'.ljust(14)} Migration Name"
|
344
|
+
puts "-" * 50
|
345
|
+
up_migrations = migrated.to_set
|
346
|
+
migrations.each do |migration|
|
347
|
+
status = up_migrations.include?(migration.version.to_i) ? 'up' : 'down'
|
348
|
+
puts "#{status.center(8)} #{migration.version.to_s.ljust(14)} #{migration.name}"
|
349
|
+
end
|
350
|
+
end
|
351
|
+
|
327
352
|
def migrations
|
328
353
|
@migrations ||= begin
|
329
|
-
files =
|
354
|
+
files = Array(@migrations_path).inject([]) do |files, path|
|
355
|
+
files += Dir["#{path}/[0-9]*_*.rb"]
|
356
|
+
end
|
330
357
|
|
331
358
|
migrations = files.inject([]) do |klasses, file|
|
332
359
|
version, name = file.scan(/([0-9]+)_([_a-z0-9]*).rb/).first
|
@@ -359,6 +386,24 @@ module Mongoid #:nodoc
|
|
359
386
|
migrations.reject { |m| already_migrated.include?(m.version.to_i) }
|
360
387
|
end
|
361
388
|
|
389
|
+
def runnable_migrations
|
390
|
+
current = migrations.detect { |m| m.version == current_version }
|
391
|
+
target = migrations.detect { |m| m.version == @target_version }
|
392
|
+
|
393
|
+
if target.nil? && !@target_version.nil? && @target_version > 0
|
394
|
+
raise UnknownMigrationVersionError.new(@target_version)
|
395
|
+
end
|
396
|
+
|
397
|
+
start = up? ? 0 : (migrations.index(current) || 0)
|
398
|
+
finish = migrations.index(target) || migrations.size - 1
|
399
|
+
runnable = migrations[start..finish]
|
400
|
+
|
401
|
+
# skip the last migration if we're headed down, but not ALL the way down
|
402
|
+
runnable.pop if down? && !target.nil?
|
403
|
+
|
404
|
+
runnable
|
405
|
+
end
|
406
|
+
|
362
407
|
def migrated
|
363
408
|
@migrated_versions ||= self.class.get_all_versions
|
364
409
|
end
|
@@ -402,4 +447,4 @@ module Mongoid #:nodoc
|
|
402
447
|
block.call
|
403
448
|
end
|
404
449
|
end
|
405
|
-
end
|
450
|
+
end
|
@@ -15,9 +15,7 @@ module Mongoid
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
else # module
|
18
|
-
|
19
|
-
|
20
|
-
option :timestamped_migrations, :default => true
|
21
|
-
end
|
18
|
+
# newer mongoid style; >= 2.0.0.rc.1
|
19
|
+
Config.option :timestamped_migrations, :default => true
|
22
20
|
end
|
23
21
|
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(
|
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,
|
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,
|
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(
|
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.0
|
3
|
-
end
|
2
|
+
VERSION = '1.3.0'
|
3
|
+
end
|
@@ -1,32 +1,28 @@
|
|
1
|
-
|
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 |
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
-
|
12
|
-
|
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
|
-
|
15
|
-
|
16
|
-
s.date = %q{2013-03-14}
|
17
|
-
s.homepage = 'http://github.com/adacosta/mongoid_rails_migrations'
|
16
|
+
spec.files = Dir['README.rdoc', 'mongoid_rails_migrations.gemspec', 'lib/**/*']
|
17
|
+
spec.require_paths = ['lib']
|
18
18
|
|
19
|
-
|
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
|
19
|
+
rails_version = '>= 4.2.0'
|
23
20
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
end
|
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'
|
28
|
+
end
|
metadata
CHANGED
@@ -1,177 +1,152 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid_rails_migrations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
5
|
-
prerelease:
|
4
|
+
version: 1.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Alan Da Costa
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2020-12-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 1.0.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 1.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mongoid
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 4.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 4.0.0
|
30
41
|
- !ruby/object:Gem::Dependency
|
31
42
|
name: rails
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
44
|
requirements:
|
35
|
-
- -
|
45
|
+
- - ">="
|
36
46
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
47
|
+
version: 4.2.0
|
38
48
|
type: :runtime
|
39
49
|
prerelease: false
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
51
|
requirements:
|
43
|
-
- -
|
52
|
+
- - ">="
|
44
53
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
54
|
+
version: 4.2.0
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: railties
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- -
|
59
|
+
- - ">="
|
52
60
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
61
|
+
version: 4.2.0
|
54
62
|
type: :runtime
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
65
|
requirements:
|
59
|
-
- -
|
66
|
+
- - ">="
|
60
67
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
68
|
+
version: 4.2.0
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
70
|
name: activesupport
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- -
|
73
|
+
- - ">="
|
68
74
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
75
|
+
version: 4.2.0
|
70
76
|
type: :runtime
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- -
|
80
|
+
- - ">="
|
76
81
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
82
|
+
version: 4.2.0
|
78
83
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
84
|
+
name: rake
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
86
|
requirements:
|
83
|
-
- -
|
87
|
+
- - ">="
|
84
88
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
89
|
+
version: '0'
|
86
90
|
type: :development
|
87
91
|
prerelease: false
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
93
|
requirements:
|
91
|
-
- -
|
94
|
+
- - ">="
|
92
95
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
96
|
+
version: '0'
|
94
97
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
98
|
+
name: minitest
|
96
99
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
100
|
requirements:
|
99
|
-
- -
|
101
|
+
- - ">="
|
100
102
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
103
|
+
version: '0'
|
102
104
|
type: :development
|
103
105
|
prerelease: false
|
104
106
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
107
|
requirements:
|
107
|
-
- -
|
108
|
+
- - ">="
|
108
109
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
-
description:
|
111
|
-
email:
|
110
|
+
version: '0'
|
111
|
+
description: Data migrations for Mongoid in Active Record style, minus column input.
|
112
|
+
email:
|
113
|
+
- alandacosta@gmail.com
|
112
114
|
executables: []
|
113
115
|
extensions: []
|
114
116
|
extra_rdoc_files: []
|
115
117
|
files:
|
116
|
-
- .
|
117
|
-
- Gemfile
|
118
|
-
- Gemfile.lock
|
119
|
-
- Rakefile
|
120
|
-
- README.rdoc
|
121
|
-
- mongoid_rails_migrations.gemspec
|
118
|
+
- lib/mongoid_rails_migrations.rb
|
122
119
|
- lib/mongoid_rails_migrations/active_record_ext/migrations.rb
|
123
120
|
- lib/mongoid_rails_migrations/models/data_migration.rb
|
124
121
|
- lib/mongoid_rails_migrations/mongoid_ext/mongoid.rb
|
125
122
|
- lib/mongoid_rails_migrations/mongoid_ext/railtie.rb
|
126
123
|
- lib/mongoid_rails_migrations/mongoid_ext/railties/database.rake
|
127
124
|
- lib/mongoid_rails_migrations/version.rb
|
128
|
-
- lib/mongoid_rails_migrations.rb
|
129
125
|
- lib/rails/generators/mongoid/migration/migration_generator.rb
|
130
126
|
- lib/rails/generators/mongoid/migration/templates/migration.rb
|
131
127
|
- lib/rails/generators/mongoid/mongoid_generator.rb
|
132
|
-
-
|
133
|
-
- test/helper.rb
|
134
|
-
- test/migration_test.rb
|
135
|
-
- test/migrations/duplicate/names/20100513073457_add_duplicate_survey_schema.rb
|
136
|
-
- test/migrations/duplicate/names/20100513073724_add_duplicate_survey_schema.rb
|
137
|
-
- test/migrations/duplicate/versions/20100513073457_add_another_duplicate_survey_schema.rb
|
138
|
-
- test/migrations/duplicate/versions/20100513073457_add_duplicate_survey_schema.rb
|
139
|
-
- test/migrations/valid/20100513054656_add_baseline_survey_schema.rb
|
140
|
-
- test/migrations/valid/20100513063902_add_improvement_plan_survey_schema.rb
|
141
|
-
- test/models/survey_schema.rb
|
128
|
+
- mongoid_rails_migrations.gemspec
|
142
129
|
homepage: http://github.com/adacosta/mongoid_rails_migrations
|
143
130
|
licenses:
|
144
131
|
- MIT
|
132
|
+
metadata: {}
|
145
133
|
post_install_message:
|
146
134
|
rdoc_options: []
|
147
135
|
require_paths:
|
148
136
|
- lib
|
149
137
|
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
-
none: false
|
151
138
|
requirements:
|
152
|
-
- -
|
139
|
+
- - ">="
|
153
140
|
- !ruby/object:Gem::Version
|
154
|
-
version:
|
141
|
+
version: '0'
|
155
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
|
-
none: false
|
157
143
|
requirements:
|
158
|
-
- -
|
144
|
+
- - ">="
|
159
145
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
146
|
+
version: '0'
|
161
147
|
requirements: []
|
162
|
-
|
163
|
-
rubygems_version: 1.8.24
|
148
|
+
rubygems_version: 3.1.2
|
164
149
|
signing_key:
|
165
|
-
specification_version:
|
166
|
-
summary: Data migrations for Mongoid
|
167
|
-
test_files:
|
168
|
-
- test/config.rb
|
169
|
-
- test/helper.rb
|
170
|
-
- test/migration_test.rb
|
171
|
-
- test/migrations/duplicate/names/20100513073457_add_duplicate_survey_schema.rb
|
172
|
-
- test/migrations/duplicate/names/20100513073724_add_duplicate_survey_schema.rb
|
173
|
-
- test/migrations/duplicate/versions/20100513073457_add_another_duplicate_survey_schema.rb
|
174
|
-
- test/migrations/duplicate/versions/20100513073457_add_duplicate_survey_schema.rb
|
175
|
-
- test/migrations/valid/20100513054656_add_baseline_survey_schema.rb
|
176
|
-
- test/migrations/valid/20100513063902_add_improvement_plan_survey_schema.rb
|
177
|
-
- test/models/survey_schema.rb
|
150
|
+
specification_version: 4
|
151
|
+
summary: Data migrations for Mongoid.
|
152
|
+
test_files: []
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,104 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
mongoid_rails_migrations (1.0.1)
|
5
|
-
activesupport (>= 3.2.0)
|
6
|
-
bundler (>= 1.0.0)
|
7
|
-
rails (>= 3.2.0)
|
8
|
-
railties (>= 3.2.0)
|
9
|
-
|
10
|
-
GEM
|
11
|
-
remote: http://rubygems.org/
|
12
|
-
specs:
|
13
|
-
actionmailer (3.2.8)
|
14
|
-
actionpack (= 3.2.8)
|
15
|
-
mail (~> 2.4.4)
|
16
|
-
actionpack (3.2.8)
|
17
|
-
activemodel (= 3.2.8)
|
18
|
-
activesupport (= 3.2.8)
|
19
|
-
builder (~> 3.0.0)
|
20
|
-
erubis (~> 2.7.0)
|
21
|
-
journey (~> 1.0.4)
|
22
|
-
rack (~> 1.4.0)
|
23
|
-
rack-cache (~> 1.2)
|
24
|
-
rack-test (~> 0.6.1)
|
25
|
-
sprockets (~> 2.1.3)
|
26
|
-
activemodel (3.2.8)
|
27
|
-
activesupport (= 3.2.8)
|
28
|
-
builder (~> 3.0.0)
|
29
|
-
activerecord (3.2.8)
|
30
|
-
activemodel (= 3.2.8)
|
31
|
-
activesupport (= 3.2.8)
|
32
|
-
arel (~> 3.0.2)
|
33
|
-
tzinfo (~> 0.3.29)
|
34
|
-
activeresource (3.2.8)
|
35
|
-
activemodel (= 3.2.8)
|
36
|
-
activesupport (= 3.2.8)
|
37
|
-
activesupport (3.2.8)
|
38
|
-
i18n (~> 0.6)
|
39
|
-
multi_json (~> 1.0)
|
40
|
-
arel (3.0.2)
|
41
|
-
builder (3.0.0)
|
42
|
-
erubis (2.7.0)
|
43
|
-
hike (1.2.1)
|
44
|
-
i18n (0.6.0)
|
45
|
-
journey (1.0.4)
|
46
|
-
json (1.7.7)
|
47
|
-
mail (2.4.4)
|
48
|
-
i18n (>= 0.4.0)
|
49
|
-
mime-types (~> 1.16)
|
50
|
-
treetop (~> 1.4.8)
|
51
|
-
mime-types (1.21)
|
52
|
-
mongoid (3.0.4)
|
53
|
-
activemodel (~> 3.1)
|
54
|
-
moped (~> 1.1)
|
55
|
-
origin (~> 1.0)
|
56
|
-
tzinfo (~> 0.3.22)
|
57
|
-
moped (1.2.0)
|
58
|
-
multi_json (1.3.6)
|
59
|
-
origin (1.0.6)
|
60
|
-
polyglot (0.3.3)
|
61
|
-
rack (1.4.5)
|
62
|
-
rack-cache (1.2)
|
63
|
-
rack (>= 0.4)
|
64
|
-
rack-ssl (1.3.3)
|
65
|
-
rack
|
66
|
-
rack-test (0.6.2)
|
67
|
-
rack (>= 1.0)
|
68
|
-
rails (3.2.8)
|
69
|
-
actionmailer (= 3.2.8)
|
70
|
-
actionpack (= 3.2.8)
|
71
|
-
activerecord (= 3.2.8)
|
72
|
-
activeresource (= 3.2.8)
|
73
|
-
activesupport (= 3.2.8)
|
74
|
-
bundler (~> 1.0)
|
75
|
-
railties (= 3.2.8)
|
76
|
-
railties (3.2.8)
|
77
|
-
actionpack (= 3.2.8)
|
78
|
-
activesupport (= 3.2.8)
|
79
|
-
rack-ssl (~> 1.3.2)
|
80
|
-
rake (>= 0.8.7)
|
81
|
-
rdoc (~> 3.4)
|
82
|
-
thor (>= 0.14.6, < 2.0)
|
83
|
-
rake (10.0.3)
|
84
|
-
rdoc (3.12.2)
|
85
|
-
json (~> 1.4)
|
86
|
-
sprockets (2.1.3)
|
87
|
-
hike (~> 1.2)
|
88
|
-
rack (~> 1.0)
|
89
|
-
tilt (~> 1.1, != 1.3.0)
|
90
|
-
test-unit (2.5.1)
|
91
|
-
thor (0.17.0)
|
92
|
-
tilt (1.3.5)
|
93
|
-
treetop (1.4.12)
|
94
|
-
polyglot
|
95
|
-
polyglot (>= 0.3.1)
|
96
|
-
tzinfo (0.3.33)
|
97
|
-
|
98
|
-
PLATFORMS
|
99
|
-
ruby
|
100
|
-
|
101
|
-
DEPENDENCIES
|
102
|
-
mongoid (>= 3.0.0)
|
103
|
-
mongoid_rails_migrations!
|
104
|
-
test-unit (>= 2.5.0)
|
data/README.rdoc
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
== RELEASE NOTES
|
2
|
-
* For rails >= 3.2.0 and mongoid >= 3.0.0, use version 1.0.0
|
3
|
-
* For rails >= 3.0.0 (but < 3.2.0) and mongoid >= 2.0.0, use version 0.0.14
|
4
|
-
|
5
|
-
== SYNOPSIS
|
6
|
-
* Data migrations for Mongoid.
|
7
|
-
|
8
|
-
== MIGRATE WHEN ...
|
9
|
-
* The migrating is good
|
10
|
-
|
11
|
-
== INSTALL
|
12
|
-
* gem install mongoid_rails_migrations
|
13
|
-
* In your Gemfile, include (after including mongoid):
|
14
|
-
gem "mongoid_rails_migrations", <version>
|
15
|
-
|
16
|
-
== FEATURES AND HOW TO USE
|
17
|
-
* generator:
|
18
|
-
* rails generate mongoid:migration your_migration_name_here
|
19
|
-
|
20
|
-
* migrations:
|
21
|
-
* db:migrate
|
22
|
-
* db:migrate:down
|
23
|
-
* db:migrate:up
|
24
|
-
* db:rollback
|
25
|
-
* db:migrate:redo
|
26
|
-
* db:migrate:reset
|
27
|
-
* db:reseed (handled by mongoid)
|
28
|
-
* db:version
|
29
|
-
|
30
|
-
== CREDITS TO
|
31
|
-
* rails
|
32
|
-
* mongoid
|
33
|
-
* contributions from the community (git log)
|
34
|
-
|
35
|
-
Much of this gem simply modifies existing code from both projects.
|
36
|
-
With that out of the way, on to the license.
|
37
|
-
|
38
|
-
== LICENSE (MIT)
|
39
|
-
|
40
|
-
Copyright © 2013: Alan Da Costa
|
41
|
-
|
42
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'),
|
43
|
-
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish,
|
44
|
-
distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to
|
45
|
-
the following conditions:
|
46
|
-
|
47
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
48
|
-
|
49
|
-
The software is provided 'as is', without warranty of any kind, express or implied, including but not limited to the warranties of
|
50
|
-
merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any
|
51
|
-
claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the
|
52
|
-
software or the use or other dealings in the software.
|
data/Rakefile
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
$:.unshift(File.dirname(__FILE__))
|
2
|
-
namespace :test do
|
3
|
-
require 'bundler/setup'
|
4
|
-
Bundler.require(:development_mongoid_rails_migrations)
|
5
|
-
|
6
|
-
namespace :mongoid do
|
7
|
-
desc "Test mongoid rails migrations"
|
8
|
-
task :migrations do
|
9
|
-
require File.dirname(__FILE__) + "/test/config"
|
10
|
-
require 'test/migration_test'
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
data/test/config.rb
DELETED
@@ -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')
|
data/test/helper.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
-
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
|
-
|
4
|
-
require 'bundler/setup'
|
5
|
-
Bundler.require(:development_mongoid_rails_migrations)
|
6
|
-
|
7
|
-
require 'config'
|
8
|
-
require 'test/unit'
|
9
|
-
|
10
|
-
require 'rake'
|
11
|
-
require 'rake/testtask'
|
12
|
-
require 'rdoc/task'
|
13
|
-
|
14
|
-
# leave out active_record, in favor of a monogo adapter
|
15
|
-
%w(
|
16
|
-
action_controller
|
17
|
-
action_mailer
|
18
|
-
active_resource
|
19
|
-
rails/test_unit
|
20
|
-
mongoid
|
21
|
-
).each do |framework|
|
22
|
-
begin
|
23
|
-
require "#{framework}/railtie"
|
24
|
-
rescue LoadError
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
module TestMongoidRailsMigrations
|
29
|
-
class Application < Rails::Application; end
|
30
|
-
end
|
31
|
-
|
32
|
-
# TestMongoidRailsMigrations::Application.initialize!
|
33
|
-
TestMongoidRailsMigrations::Application.load_tasks
|
data/test/migration_test.rb
DELETED
@@ -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
|