switchman 3.3.3 → 3.3.4
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 +4 -4
- data/lib/switchman/active_record/connection_pool.rb +15 -0
- data/lib/switchman/shared_schema_cache.rb +11 -0
- data/lib/switchman/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9dfbc3eb712e4dabeaf71e1772014d3fcc50f439d7266c03943050e4054791f2
|
4
|
+
data.tar.gz: 902b59d7077cab4e9c583b55e5f1c3e4df6565e678b806f7df4515033031ea65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cba1cdfe3b5297443fe62064db702a3164fab8939497196e2c325e3a28fb6c4d1bbbd64698dd7c861c7f60b32eb5d91d6c1273ec4f8d3eafe45f675f5fcc36b1
|
7
|
+
data.tar.gz: b66c46f377262622339d18bd5167c6fca048b02e8167f9636aefae642afca1987ec51c71ed68a4fb3177fd0176c589b4f587c3336cc863f4b3478ed25503af53
|
@@ -3,6 +3,21 @@
|
|
3
3
|
module Switchman
|
4
4
|
module ActiveRecord
|
5
5
|
module ConnectionPool
|
6
|
+
def get_schema_cache(connection)
|
7
|
+
self.schema_cache ||= SharedSchemaCache.get_schema_cache(connection)
|
8
|
+
self.schema_cache.connection = connection
|
9
|
+
|
10
|
+
self.schema_cache
|
11
|
+
end
|
12
|
+
|
13
|
+
# rubocop:disable Naming/AccessorMethodName override method
|
14
|
+
def set_schema_cache(cache)
|
15
|
+
cache.instance_variables.each do |x|
|
16
|
+
self.schema_cache.instance_variable_set(x, cache.instance_variable_get(x))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
# rubocop:enable Naming/AccessorMethodName override method
|
20
|
+
|
6
21
|
def default_schema
|
7
22
|
connection unless @schemas
|
8
23
|
# default shard will not switch databases immediately, so it won't be set yet
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Switchman
|
4
|
+
class SharedSchemaCache
|
5
|
+
def self.get_schema_cache(connection)
|
6
|
+
@schema_cache ||= ::ActiveRecord::ConnectionAdapters::SchemaCache.new(connection)
|
7
|
+
@schema_cache.connection = connection
|
8
|
+
@schema_cache
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
data/lib/switchman/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: switchman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-03-
|
13
|
+
date: 2023-03-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -290,6 +290,7 @@ files:
|
|
290
290
|
- lib/switchman/rails.rb
|
291
291
|
- lib/switchman/shard.rb
|
292
292
|
- lib/switchman/sharded_instrumenter.rb
|
293
|
+
- lib/switchman/shared_schema_cache.rb
|
293
294
|
- lib/switchman/standard_error.rb
|
294
295
|
- lib/switchman/test_helper.rb
|
295
296
|
- lib/switchman/unsharded_record.rb
|