switchman 3.0.10 → 3.0.13
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/engine.rb +5 -5
- data/lib/switchman/standard_error.rb +13 -11
- data/lib/switchman/version.rb +1 -1
- data/lib/tasks/switchman.rake +3 -3
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb102ddffa5ff2319a8e73b4d62ff8b3ff18fe2e9905c9ecb03c4aa20fda4bd7
|
4
|
+
data.tar.gz: 941b024d4e92811e51bf53dedba0039aaea52c169398d0b50ecc7da6bc0aefbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea2c591ba32875d6cce5016c285fc3398e2bb491a7631ee5c900f3033c008292a38fd51c77d6a2b9abb00996963e8d8b0a61ca43c44a468025750a5aacd459be
|
7
|
+
data.tar.gz: e7e3f2b2ee7551e38f5d2d41b66eee7fb335c630ed1096598e25a1d09af506dfcbe63920de25828ce842c4b83c55a4abc70221e5c5a2fdc2e7f64b3fe181b50a
|
data/lib/switchman/engine.rb
CHANGED
@@ -68,6 +68,9 @@ module Switchman
|
|
68
68
|
|
69
69
|
initializer 'switchman.extend_ar', before: 'active_record.initialize_database' do
|
70
70
|
::ActiveSupport.on_load(:active_record) do
|
71
|
+
# Switchman requires postgres, so just always load the pg adapter
|
72
|
+
require 'active_record/connection_adapters/postgresql_adapter'
|
73
|
+
|
71
74
|
require 'switchman/active_record/abstract_adapter'
|
72
75
|
require 'switchman/active_record/association'
|
73
76
|
require 'switchman/active_record/attribute_methods'
|
@@ -81,6 +84,7 @@ module Switchman
|
|
81
84
|
require 'switchman/active_record/migration'
|
82
85
|
require 'switchman/active_record/model_schema'
|
83
86
|
require 'switchman/active_record/persistence'
|
87
|
+
require 'switchman/active_record/postgresql_adapter'
|
84
88
|
require 'switchman/active_record/predicate_builder'
|
85
89
|
require 'switchman/active_record/query_cache'
|
86
90
|
require 'switchman/active_record/query_methods'
|
@@ -128,6 +132,7 @@ module Switchman
|
|
128
132
|
::ActiveRecord::ConnectionAdapters::AbstractAdapter.prepend(ActiveRecord::AbstractAdapter)
|
129
133
|
::ActiveRecord::ConnectionAdapters::ConnectionPool.prepend(ActiveRecord::ConnectionPool)
|
130
134
|
::ActiveRecord::ConnectionAdapters::AbstractAdapter.prepend(ActiveRecord::QueryCache)
|
135
|
+
::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(ActiveRecord::PostgreSQLAdapter)
|
131
136
|
|
132
137
|
::ActiveRecord::DatabaseConfigurations.prepend(ActiveRecord::DatabaseConfigurations)
|
133
138
|
::ActiveRecord::DatabaseConfigurations::DatabaseConfig.prepend(ActiveRecord::DatabaseConfigurations::DatabaseConfig)
|
@@ -180,11 +185,6 @@ module Switchman
|
|
180
185
|
require 'switchman/active_record/table_definition'
|
181
186
|
::ActiveRecord::ConnectionAdapters::TableDefinition.prepend(ActiveRecord::TableDefinition)
|
182
187
|
|
183
|
-
if defined?(::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
|
184
|
-
require 'switchman/active_record/postgresql_adapter'
|
185
|
-
::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(ActiveRecord::PostgreSQLAdapter)
|
186
|
-
end
|
187
|
-
|
188
188
|
Shard.send(:initialize_sharding)
|
189
189
|
end
|
190
190
|
end
|
@@ -3,20 +3,22 @@
|
|
3
3
|
module Switchman
|
4
4
|
module StandardError
|
5
5
|
def initialize(*args)
|
6
|
-
|
7
|
-
#
|
8
|
-
if is_a?(::
|
9
|
-
|
10
|
-
return
|
11
|
-
end
|
6
|
+
super
|
7
|
+
# These seem to get themselves into a bad state if we try to lookup shards while processing
|
8
|
+
return if is_a?(IO::EAGAINWaitReadable)
|
9
|
+
return if Thread.current[:switchman_error_handler]
|
12
10
|
|
13
11
|
begin
|
14
|
-
|
15
|
-
rescue ::ActiveRecord::ConnectionNotEstablished
|
16
|
-
# If we hit an error really early in boot, activerecord may not be initialized yet
|
17
|
-
end
|
12
|
+
Thread.current[:switchman_error_handler] = true
|
18
13
|
|
19
|
-
|
14
|
+
begin
|
15
|
+
@active_shards = Shard.active_shards if defined?(Shard)
|
16
|
+
rescue
|
17
|
+
# If we hit an error really early in boot, activerecord may not be initialized yet
|
18
|
+
end
|
19
|
+
ensure
|
20
|
+
Thread.current[:switchman_error_handler] = nil
|
21
|
+
end
|
20
22
|
end
|
21
23
|
|
22
24
|
def current_shard(klass = ::ActiveRecord::Base)
|
data/lib/switchman/version.rb
CHANGED
data/lib/tasks/switchman.rake
CHANGED
@@ -35,9 +35,9 @@ module Switchman
|
|
35
35
|
|
36
36
|
scope = base_scope.order(::Arel.sql('database_server_id IS NOT NULL, database_server_id, id'))
|
37
37
|
if servers != DatabaseServer.all
|
38
|
-
|
39
|
-
|
40
|
-
scope = scope.where(
|
38
|
+
database_server_ids = servers.map(&:id)
|
39
|
+
database_server_ids << nil if servers.include?(Shard.default.database_server)
|
40
|
+
scope = scope.where(database_server_id: database_server_ids)
|
41
41
|
end
|
42
42
|
|
43
43
|
scope = shard_scope(scope, shard) if shard
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: switchman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
8
8
|
- James Williams
|
9
9
|
- Jacob Fugal
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-03-
|
13
|
+
date: 2022-03-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -300,7 +300,7 @@ licenses:
|
|
300
300
|
- MIT
|
301
301
|
metadata:
|
302
302
|
rubygems_mfa_required: 'true'
|
303
|
-
post_install_message:
|
303
|
+
post_install_message:
|
304
304
|
rdoc_options: []
|
305
305
|
require_paths:
|
306
306
|
- lib
|
@@ -316,7 +316,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
316
316
|
version: '0'
|
317
317
|
requirements: []
|
318
318
|
rubygems_version: 3.1.4
|
319
|
-
signing_key:
|
319
|
+
signing_key:
|
320
320
|
specification_version: 4
|
321
321
|
summary: Rails sharding magic
|
322
322
|
test_files: []
|