activerecord-multi-tenant 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +2 -2
- data/gemfiles/rails_3.2.gemfile.lock +2 -2
- data/gemfiles/rails_4.0.gemfile.lock +2 -2
- data/gemfiles/rails_4.1.gemfile.lock +2 -2
- data/gemfiles/rails_4.2.gemfile.lock +2 -2
- data/gemfiles/rails_5.0.gemfile.lock +2 -2
- data/lib/activerecord-multi-tenant/referential_integrity.rb +6 -8
- data/lib/activerecord-multi-tenant/version.rb +1 -1
- data/lib/activerecord-multi-tenant/with_lock.rb +7 -9
- data/spec/activerecord-multi-tenant/model_extensions_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 261f0a075c9a14524dfc43455a030e710bd140a1
|
4
|
+
data.tar.gz: 3bdd3d5ef7aec6fa07d67a8226a600accb3eeadd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b2c5621e0de6308ebc36169873318fd4975e7b54ae7e409a05d58978f65407e8ef6e99e82e2f7399dafdfb659421123cb849e825b93426c28e742ea4ff434a8
|
7
|
+
data.tar.gz: 0ced6530c9654b4dcfc4d326d6c97a1225d4a47b2300221a8b2fbf05ec3243fc27af128b9da975c73053d23235c333ff79fd10aaf378f7c0f3fb0c844395b4f0
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.3.4 2017-02-22
|
4
|
+
|
5
|
+
* Expand with_lock workaround to cover lock! as well
|
6
|
+
* Enable trigger workaround on Rails 5 as well, otherwise it fails silently
|
7
|
+
* Tests: Switch to database cleaner truncation strategy to avoid multi-shard transactions
|
8
|
+
|
9
|
+
|
3
10
|
## 0.3.3 2017-02-21
|
4
11
|
|
5
12
|
* Avoid warning about multi-column primary keys with Rails 5 [#2](https://github.com/citusdata/activerecord-multi-tenant/issues/2)
|
data/Gemfile.lock
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# Workaround for https://github.com/citusdata/citus/issues/1080
|
2
2
|
# "Support DISABLE/ENABLE TRIGGER ALL on distributed tables"
|
3
3
|
|
4
|
-
|
5
|
-
require 'active_record/connection_adapters/postgresql_adapter'
|
4
|
+
require 'active_record/connection_adapters/postgresql_adapter'
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
6
|
+
module ActiveRecord
|
7
|
+
module ConnectionAdapters
|
8
|
+
class PostgreSQLAdapter < AbstractAdapter
|
9
|
+
def supports_disable_referential_integrity?
|
10
|
+
false
|
13
11
|
end
|
14
12
|
end
|
15
13
|
end
|
@@ -2,16 +2,14 @@
|
|
2
2
|
# "SELECT ... FOR UPDATE is not supported for router-plannable queries"
|
3
3
|
|
4
4
|
class ActiveRecord::Base
|
5
|
-
alias :
|
6
|
-
def
|
7
|
-
if self.class.respond_to?(:scoped_by_tenant?) && MultiTenant.current_tenant_id && MultiTenant.with_lock_workaround_enabled?
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
yield
|
12
|
-
end
|
5
|
+
alias :lock_orig :lock!
|
6
|
+
def lock!(lock = true)
|
7
|
+
if lock && persisted? && self.class.respond_to?(:scoped_by_tenant?) && MultiTenant.current_tenant_id && MultiTenant.with_lock_workaround_enabled?
|
8
|
+
self.class.unscoped.where(id: id).update_all(id: id) # No-op UPDATE that locks the row
|
9
|
+
reload # This is just to act similar to the default Rails approach, in case someone relies on the reload
|
10
|
+
self
|
13
11
|
else
|
14
|
-
|
12
|
+
lock_orig(lock)
|
15
13
|
end
|
16
14
|
end
|
17
15
|
end
|
@@ -159,7 +159,7 @@ describe MultiTenant do
|
|
159
159
|
expect(MultiTenant.current_tenant).to eq(@account1)
|
160
160
|
end
|
161
161
|
|
162
|
-
it "should return the value of the block"
|
162
|
+
it "should return the value of the block" do
|
163
163
|
@account1 = Account.create!(:name => 'foo')
|
164
164
|
@account2 = Account.create!(:name => 'bar')
|
165
165
|
|
data/spec/spec_helper.rb
CHANGED
@@ -21,8 +21,8 @@ RSpec.configure do |config|
|
|
21
21
|
end
|
22
22
|
|
23
23
|
config.before(:suite) do
|
24
|
-
DatabaseCleaner[:active_record].strategy = :
|
25
|
-
DatabaseCleaner[:active_record].
|
24
|
+
DatabaseCleaner[:active_record].strategy = :truncation
|
25
|
+
DatabaseCleaner[:active_record].clean
|
26
26
|
|
27
27
|
# Keep this here until https://github.com/citusdata/citus/issues/1236 is fixed in a patch release we can run tests with
|
28
28
|
MultiTenant.enable_with_lock_workaround
|