rails-pg-adapter 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 432740419d2edda4a33caf34ba5efa2af778456763db8864c632b3d813f1953e
4
- data.tar.gz: 60a026760c20847ace00bf181878c0039eface04fa30ff51227e677be88f95c0
3
+ metadata.gz: 8492318d406e356186bb5d0830087f1e3c21eeeefbc806b0881680a026c3e85b
4
+ data.tar.gz: 52d95814d9f0df186c464932e4a81f30ff6d2aabf8715740b64d4973877a7681
5
5
  SHA512:
6
- metadata.gz: 5fb1aac2ec7330a599cc9005d339fab13613b409cf37152a003826b760c02b8b4060b0134d50799be4db7d77e6db4165b6ef99d0b1df0399133749f4746c5a25
7
- data.tar.gz: 0450d73b3e3330da51c01d64a922828da6b32fe1d500d2c719ee40bd5dbbc2ac2c40d87cc93bc3a8a53676c3476f61180684a6bf05cf301d876f393eab6b5bee
6
+ metadata.gz: f51318474f857c6733e86f7cb6a19d7d2e7d84cd4de5125b780e1a44a7ff8bdb6325e9dd934c197b47566bf6d359454e0fc0761563b64e5629d752fa2886f10c
7
+ data.tar.gz: 7a98ab05cc5d99a1b26244ea000634fd4efdb8d855a1c81c101342e6aa1149ecac01fd5c8131837ff3ae0ae9d75e1c98bdbed2974be7c38e9810643b22580d8b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [0.1.6] - 2023-04-19
2
+
3
+ - Disconnect and remove connection when in read-only
4
+
1
5
  ## [0.1.5] - 2023-04-19
2
6
 
3
7
  - Retry queries when not in transaction
@@ -19,6 +19,12 @@ module RailsPgAdapter
19
19
  CONNECTION_SCHEMA_ERROR = ["PG::UndefinedColumn"].freeze
20
20
  CONNECTION_SCHEMA_RE = /#{CONNECTION_SCHEMA_ERROR.map { |w| Regexp.escape(w) }.join("|")}/.freeze
21
21
 
22
+ CONNECTION_READ_ONLY_ERROR = [
23
+ "read-only",
24
+ "PG::ReadOnlySqlTransaction",
25
+ ].freeze
26
+ CONNECTION_READ_ONLY_ERROR_RE = /#{CONNECTION_READ_ONLY_ERROR.map { |w| Regexp.escape(w) }.join("|")}/.freeze
27
+
22
28
  private
23
29
 
24
30
  def exec_cache(*args)
@@ -43,6 +49,7 @@ module RailsPgAdapter
43
49
  return false unless RailsPgAdapter.reconnect_with_backoff?
44
50
 
45
51
  begin
52
+ disconnect_and_remove_conn! if read_only_error?(e.message)
46
53
  reconnect!
47
54
  true
48
55
  rescue ::ActiveRecord::ConnectionNotEstablished
@@ -96,6 +103,10 @@ module RailsPgAdapter
96
103
  end
97
104
  false
98
105
  end
106
+
107
+ def read_only_error?(error_message)
108
+ CONNECTION_READ_ONLY_ERROR_RE.match?(error_message)
109
+ end
99
110
  end
100
111
  end
101
112
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsPgAdapter
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-pg-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tines Engineering