switchman 3.0.6 → 3.0.7
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/app/models/switchman/shard.rb +3 -3
- data/lib/switchman/active_record/base.rb +1 -1
- data/lib/switchman/active_record/calculations.rb +1 -1
- data/lib/switchman/database_server.rb +2 -2
- data/lib/switchman/r_spec_helper.rb +5 -0
- data/lib/switchman/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 326fba116e3a3801cdd40b47ede332a372dab86522cbeaab1a3b6b361eccce1f
|
4
|
+
data.tar.gz: 190457646d607aa444dbff867c67c5cd854817e8105efab44dd00fc782d1f21e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3843b4407a36b8f7f3aff2381dc6ee2e5f886169349794e679759a6d13d96b52e96e832caf78728f20df7d1d017701d7e7d8847c8a4620cd6b669ba8f25e9cc6
|
7
|
+
data.tar.gz: 8e667cd250473f5b885fea29888454a186bafa9f694138bf0cf9f6761962ef4bf2a85b595a9cd7d26fb3f6532b4b8b8be9d6362c01329a63f94272f63ee55b4b
|
@@ -160,9 +160,9 @@ module Switchman
|
|
160
160
|
# nothing to do
|
161
161
|
return if database_servers.count.zero?
|
162
162
|
|
163
|
-
scopes = database_servers.
|
163
|
+
scopes = database_servers.to_h do |server|
|
164
164
|
[server, server.shards.merge(scope)]
|
165
|
-
end
|
165
|
+
end
|
166
166
|
else
|
167
167
|
scopes = scope.group_by(&:database_server)
|
168
168
|
end
|
@@ -475,7 +475,7 @@ module Switchman
|
|
475
475
|
end
|
476
476
|
|
477
477
|
def initialize_sharding
|
478
|
-
full_connects_to_hash = DatabaseServer.all.
|
478
|
+
full_connects_to_hash = DatabaseServer.all.to_h { |db| [db.id.to_sym, db.connects_to_hash] }
|
479
479
|
sharded_models.each do |klass|
|
480
480
|
connects_to_hash = full_connects_to_hash.deep_dup
|
481
481
|
if klass == UnshardedRecord
|
@@ -189,7 +189,7 @@ module Switchman
|
|
189
189
|
if reflection
|
190
190
|
if reflection.options[:polymorphic]
|
191
191
|
begin
|
192
|
-
read_attribute(reflection.foreign_type)&.constantize&.connection_classes
|
192
|
+
read_attribute(reflection.foreign_type)&.constantize&.connection_classes || ::ActiveRecord::Base
|
193
193
|
rescue NameError
|
194
194
|
# in case someone is abusing foreign_type to not point to an actual class
|
195
195
|
::ActiveRecord::Base
|
@@ -83,7 +83,7 @@ module Switchman
|
|
83
83
|
if opts[:association]
|
84
84
|
key_ids = calculated_data.collect { |row| row[opts[:group_aliases].first] }
|
85
85
|
key_records = opts[:association].klass.base_class.where(id: key_ids)
|
86
|
-
key_records = key_records.
|
86
|
+
key_records = key_records.to_h { |r| [Shard.relative_id_for(r, shard, target_shard), r] }
|
87
87
|
end
|
88
88
|
|
89
89
|
calculated_data.map do |row|
|
@@ -89,13 +89,13 @@ module Switchman
|
|
89
89
|
end
|
90
90
|
|
91
91
|
def connects_to_hash
|
92
|
-
self.class.all_roles.
|
92
|
+
self.class.all_roles.to_h do |role|
|
93
93
|
config_role = role
|
94
94
|
config_role = :primary unless roles.include?(role)
|
95
95
|
config_name = :"#{id}/#{config_role}"
|
96
96
|
config_name = :primary if id == ::Rails.env && config_role == :primary
|
97
97
|
[role.to_sym, config_name]
|
98
|
-
end
|
98
|
+
end
|
99
99
|
end
|
100
100
|
|
101
101
|
def destroy
|
@@ -107,6 +107,11 @@ module Switchman
|
|
107
107
|
raise 'Sharding did not set up correctly' if @@sharding_failed
|
108
108
|
|
109
109
|
Shard.clear_cache
|
110
|
+
if use_transactional_tests
|
111
|
+
Shard.default(reload: true)
|
112
|
+
@shard1 = Shard.find(@shard1.id)
|
113
|
+
@shard2 = Shard.find(@shard2.id)
|
114
|
+
end
|
110
115
|
end
|
111
116
|
|
112
117
|
klass.after do
|
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.0.
|
4
|
+
version: 3.0.7
|
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: 2022-02-
|
13
|
+
date: 2022-02-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -298,7 +298,8 @@ files:
|
|
298
298
|
homepage: http://www.instructure.com/
|
299
299
|
licenses:
|
300
300
|
- MIT
|
301
|
-
metadata:
|
301
|
+
metadata:
|
302
|
+
rubygems_mfa_required: 'true'
|
302
303
|
post_install_message:
|
303
304
|
rdoc_options: []
|
304
305
|
require_paths:
|