rails-pg-adapter 0.1.5 → 0.1.6

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 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