janus-ar 0.4.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +4 -1
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/active_record/connection_adapters/janus_mysql2_adapter.rb +8 -6
- data/lib/janus/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02c92206a54d203c923936849e6fd8c5621c8da702c4f0e327680a6084f86a75
|
4
|
+
data.tar.gz: b0e4746b02cf9e1bdf123cf7ad8b0e5ec0485bbb1433d6e9b6e98483b2afd132
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 228491371a233938062950c382d31e5a68bbf6e60c20c659ffd97920e2b2b8beaab5df874ddc6d4ce5eee15a7efab7776eae5fe6e547e60a91173ba72341d654
|
7
|
+
data.tar.gz: 9bd2c0749f350bfe663d4d64b2125c6fcc7bb10293b712178b2a6361f6f5a7ae4178b3651c0bca332e35a9180e555af9fb6c7f6e618a1f5911eb8427daf3b34b
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
janus-ar-*.gem
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -30,7 +30,6 @@ module ActiveRecord
|
|
30
30
|
|
31
31
|
@replica_config = args[0][:janus]['replica']
|
32
32
|
args[0] = args[0][:janus]['primary']
|
33
|
-
|
34
33
|
super(*args)
|
35
34
|
@connection_parameters ||= args[0]
|
36
35
|
update_config
|
@@ -89,11 +88,14 @@ module ActiveRecord
|
|
89
88
|
end
|
90
89
|
|
91
90
|
def can_go_to_replica?(sql)
|
92
|
-
|
93
|
-
|
94
|
-
SQL_PRIMARY_MATCHERS.any? { |matcher| sql =~ matcher }
|
91
|
+
!should_go_to_primary?(sql)
|
92
|
+
end
|
95
93
|
|
96
|
-
|
94
|
+
def should_go_to_primary?(sql)
|
95
|
+
Janus::Context.use_primary? ||
|
96
|
+
write_query?(sql) ||
|
97
|
+
open_transactions.positive? ||
|
98
|
+
SQL_PRIMARY_MATCHERS.any? { |matcher| sql =~ matcher }
|
97
99
|
end
|
98
100
|
|
99
101
|
def send_to_replica(sql, connection: nil, method: :exec_query)
|
@@ -106,7 +108,7 @@ module ActiveRecord
|
|
106
108
|
end
|
107
109
|
|
108
110
|
def write_query?(sql)
|
109
|
-
%w[INSERT UPDATE DELETE LOCK].include?(sql.split(' ').first)
|
111
|
+
%w[INSERT UPDATE DELETE LOCK CREATE GRANT].include?(sql.split(' ').first)
|
110
112
|
end
|
111
113
|
|
112
114
|
def replica_connection
|
data/lib/janus/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: janus-ar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lloyd Watkin
|
@@ -117,6 +117,7 @@ extra_rdoc_files: []
|
|
117
117
|
files:
|
118
118
|
- ".github/dependabot.yml"
|
119
119
|
- ".github/workflows/ci.yml"
|
120
|
+
- ".gitignore"
|
120
121
|
- ".rspec"
|
121
122
|
- ".rubocop.yml"
|
122
123
|
- CODE_OF_CONDUCT.md
|