apartment 0.5.0 → 0.5.1
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.
- data/HISTORY.md +6 -0
- data/lib/apartment/version.rb +1 -1
- data/lib/tasks/apartment.rake +16 -1
- data/spec/tasks/apartment_rake_spec.rb +5 -1
- metadata +14 -8
data/HISTORY.md
CHANGED
data/lib/apartment/version.rb
CHANGED
data/lib/tasks/apartment.rake
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
namespace :apartment do
|
1
|
+
apartment_namespace = namespace :apartment do
|
2
2
|
|
3
3
|
desc "Migrate all multi-tenant databases"
|
4
4
|
task :migrate => :environment do
|
@@ -10,6 +10,8 @@ namespace :apartment do
|
|
10
10
|
desc "Rolls the schema back to the previous version (specify steps w/ STEP=n) across all multi-tenant dbs."
|
11
11
|
task :rollback => :environment do
|
12
12
|
step = ENV['STEP'] ? ENV['STEP'].to_i : 1
|
13
|
+
ActiveRecord::Migrator.rollback(ActiveRecord::Migrator.migrations_path, step)
|
14
|
+
|
13
15
|
Apartment.database_names.each{ |db| Apartment::Migrator.rollback db, step }
|
14
16
|
end
|
15
17
|
|
@@ -20,6 +22,7 @@ namespace :apartment do
|
|
20
22
|
version = ENV['VERSION'] ? ENV['VERSION'].to_i : nil
|
21
23
|
raise 'VERSION is required' unless version
|
22
24
|
|
25
|
+
ActiveRecord::Migrator.run(:up, ActiveRecord::Migrator.migrations_path, version)
|
23
26
|
Apartment.database_names.each{ |db| Apartment::Migrator.run :up, db, version }
|
24
27
|
end
|
25
28
|
|
@@ -28,9 +31,21 @@ namespace :apartment do
|
|
28
31
|
version = ENV['VERSION'] ? ENV['VERSION'].to_i : nil
|
29
32
|
raise 'VERSION is required' unless version
|
30
33
|
|
34
|
+
ActiveRecord::Migrator.run(:down, ActiveRecord::Migrator.migrations_path, version)
|
31
35
|
Apartment.database_names.each{ |db| Apartment::Migrator.run :down, db, version }
|
32
36
|
end
|
33
37
|
|
38
|
+
desc 'Rollbacks the database one migration and re migrate up (options: STEP=x, VERSION=x).'
|
39
|
+
task :redo => :environment do
|
40
|
+
if ENV['VERSION']
|
41
|
+
apartment_namespace['migrate:down'].invoke
|
42
|
+
apartment_namespace['migrate:up'].invoke
|
43
|
+
else
|
44
|
+
apartment_namespace['rollback'].invoke
|
45
|
+
apartment_namespace['migrate'].invoke
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
34
49
|
end
|
35
50
|
|
36
51
|
end
|
@@ -30,7 +30,8 @@ describe "apartment rake tasks" do
|
|
30
30
|
ActiveRecord::Migrator.stub(:migrate) # don't care about this
|
31
31
|
end
|
32
32
|
|
33
|
-
it "should migrate all multi-tenant dbs" do
|
33
|
+
it "should migrate public and all multi-tenant dbs" do
|
34
|
+
ActiveRecord::Migrator.should_receive(:migrate).once
|
34
35
|
Apartment::Migrator.should_receive(:migrate).exactly(db_count).times
|
35
36
|
@rake['apartment:migrate'].invoke
|
36
37
|
end
|
@@ -57,6 +58,7 @@ describe "apartment rake tasks" do
|
|
57
58
|
end
|
58
59
|
|
59
60
|
it "migrates up to a specific version" do
|
61
|
+
ActiveRecord::Migrator.should_receive(:run).with(:up, anything, version.to_i).once
|
60
62
|
Apartment::Migrator.should_receive(:run).with(:up, anything, version.to_i).exactly(db_count).times
|
61
63
|
@rake['apartment:migrate:up'].invoke
|
62
64
|
end
|
@@ -84,6 +86,7 @@ describe "apartment rake tasks" do
|
|
84
86
|
end
|
85
87
|
|
86
88
|
it "migrates up to a specific version" do
|
89
|
+
ActiveRecord::Migrator.should_receive(:run).with(:down, anything, version.to_i).once
|
87
90
|
Apartment::Migrator.should_receive(:run).with(:down, anything, version.to_i).exactly(db_count).times
|
88
91
|
@rake['apartment:migrate:down'].invoke
|
89
92
|
end
|
@@ -95,6 +98,7 @@ describe "apartment rake tasks" do
|
|
95
98
|
let(:step){ '3' }
|
96
99
|
|
97
100
|
it "should rollback dbs" do
|
101
|
+
ActiveRecord::Migrator.should_receive(:rollback).once
|
98
102
|
Apartment::Migrator.should_receive(:rollback).exactly(db_count).times
|
99
103
|
@rake['apartment:rollback'].invoke
|
100
104
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: apartment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.5.
|
5
|
+
version: 0.5.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ryan Brunner
|
@@ -16,7 +16,6 @@ default_executable:
|
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rails
|
19
|
-
prerelease: false
|
20
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
21
20
|
none: false
|
22
21
|
requirements:
|
@@ -24,10 +23,10 @@ dependencies:
|
|
24
23
|
- !ruby/object:Gem::Version
|
25
24
|
version: 3.0.8
|
26
25
|
type: :runtime
|
26
|
+
prerelease: false
|
27
27
|
version_requirements: *id001
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: sqlite3
|
30
|
-
prerelease: false
|
31
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
32
31
|
none: false
|
33
32
|
requirements:
|
@@ -35,10 +34,10 @@ dependencies:
|
|
35
34
|
- !ruby/object:Gem::Version
|
36
35
|
version: "0"
|
37
36
|
type: :development
|
37
|
+
prerelease: false
|
38
38
|
version_requirements: *id002
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: rspec
|
41
|
-
prerelease: false
|
42
41
|
requirement: &id003 !ruby/object:Gem::Requirement
|
43
42
|
none: false
|
44
43
|
requirements:
|
@@ -46,10 +45,10 @@ dependencies:
|
|
46
45
|
- !ruby/object:Gem::Version
|
47
46
|
version: 2.6.0
|
48
47
|
type: :development
|
48
|
+
prerelease: false
|
49
49
|
version_requirements: *id003
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: rspec-rails
|
52
|
-
prerelease: false
|
53
52
|
requirement: &id004 !ruby/object:Gem::Requirement
|
54
53
|
none: false
|
55
54
|
requirements:
|
@@ -57,10 +56,10 @@ dependencies:
|
|
57
56
|
- !ruby/object:Gem::Version
|
58
57
|
version: 2.6.1
|
59
58
|
type: :development
|
59
|
+
prerelease: false
|
60
60
|
version_requirements: *id004
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: capybara
|
63
|
-
prerelease: false
|
64
63
|
requirement: &id005 !ruby/object:Gem::Requirement
|
65
64
|
none: false
|
66
65
|
requirements:
|
@@ -68,10 +67,10 @@ dependencies:
|
|
68
67
|
- !ruby/object:Gem::Version
|
69
68
|
version: 1.0.0
|
70
69
|
type: :development
|
70
|
+
prerelease: false
|
71
71
|
version_requirements: *id005
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: pg
|
74
|
-
prerelease: false
|
75
74
|
requirement: &id006 !ruby/object:Gem::Requirement
|
76
75
|
none: false
|
77
76
|
requirements:
|
@@ -79,10 +78,10 @@ dependencies:
|
|
79
78
|
- !ruby/object:Gem::Version
|
80
79
|
version: 0.11.0
|
81
80
|
type: :development
|
81
|
+
prerelease: false
|
82
82
|
version_requirements: *id006
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: silent-postgres
|
85
|
-
prerelease: false
|
86
85
|
requirement: &id007 !ruby/object:Gem::Requirement
|
87
86
|
none: false
|
88
87
|
requirements:
|
@@ -90,6 +89,7 @@ dependencies:
|
|
90
89
|
- !ruby/object:Gem::Version
|
91
90
|
version: 0.0.8
|
92
91
|
type: :development
|
92
|
+
prerelease: false
|
93
93
|
version_requirements: *id007
|
94
94
|
description: Apartment allows Rails applications to deal with database multitenancy
|
95
95
|
email:
|
@@ -185,12 +185,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
185
185
|
requirements:
|
186
186
|
- - ">="
|
187
187
|
- !ruby/object:Gem::Version
|
188
|
+
hash: 2503870912539283995
|
189
|
+
segments:
|
190
|
+
- 0
|
188
191
|
version: "0"
|
189
192
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
193
|
none: false
|
191
194
|
requirements:
|
192
195
|
- - ">="
|
193
196
|
- !ruby/object:Gem::Version
|
197
|
+
hash: 2503870912539283995
|
198
|
+
segments:
|
199
|
+
- 0
|
194
200
|
version: "0"
|
195
201
|
requirements: []
|
196
202
|
|