sequel-activerecord_connection 1.2.1 → 1.2.5
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/CHANGELOG.md +25 -1
- data/lib/sequel/extensions/activerecord_connection/mysql2.rb +16 -11
- data/lib/sequel/extensions/activerecord_connection/postgres.rb +4 -4
- data/lib/sequel/extensions/activerecord_connection/sqlite.rb +9 -1
- data/lib/sequel/extensions/activerecord_connection.rb +19 -5
- data/sequel-activerecord_connection.gemspec +5 -5
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f7764c3c949cc68b34a38607264efa44915adcecca59514e5ecfda075f9e9d7
|
4
|
+
data.tar.gz: 273b77e0d95f1506765bd4ee88d79ec69639224b7d220b6d368d62bdfc7b665b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d32c90dbfc833db0c8f62ee72ef7a2d997e9c3d0b5e9f7e0dc817431a9e96cbb1e87542de0c828742a8068cfa5227ae8cf287931c6bcb05b6da87fd87b00c924
|
7
|
+
data.tar.gz: 174b89d5a19094c68549fb1112df0de767eb9ed77b1acd7e17114ac3af3637f47f95c46c3e98dace8b28123a473669ff17b04197ee3819c4a92a78cfa6f3a024
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,28 @@
|
|
1
|
-
##
|
1
|
+
## HEAD
|
2
|
+
|
3
|
+
* Loosen Active Record dependency to allow any 7.x version (@janko)
|
4
|
+
|
5
|
+
* Drop support for Ruby 2.3 (@janko)
|
6
|
+
|
7
|
+
* Allow using the `sql_log_normalizer` Sequel database extension (@janko)
|
8
|
+
|
9
|
+
## 1.2.4 (2021-09-27)
|
10
|
+
|
11
|
+
* Allow using with Active Record 7.0 (@janko)
|
12
|
+
|
13
|
+
* Use `ActiveRecord.default_timezone` on Active Record 7.0 or greater (@janko)
|
14
|
+
|
15
|
+
## 1.2.3 (2021-07-17)
|
16
|
+
|
17
|
+
* Bump `after_commit_everywhere` dependency to `~> 1.0` (@wivarn)
|
18
|
+
|
19
|
+
## 1.2.2 (2021-01-11)
|
20
|
+
|
21
|
+
* Ensure Active Record queries inside a Sequel transaction are typemapped correctly in postgres adapter (@janko)
|
22
|
+
|
23
|
+
* Fix executing Active Record queries inside a Sequel transaction not working in mysql2 adapter (@janko)
|
24
|
+
|
25
|
+
## 1.2.1 (2021-01-10)
|
2
26
|
|
3
27
|
* Fix original mysql2 query options not being restored after nested `DB#synchronize` calls, e.g. when using Sequel transactions (@janko)
|
4
28
|
|
@@ -5,21 +5,26 @@ module Sequel
|
|
5
5
|
module Mysql2
|
6
6
|
def synchronize(*)
|
7
7
|
super do |conn|
|
8
|
-
if conn.instance_variable_defined?(:@sequel_default_query_options)
|
9
|
-
return yield(conn)
|
10
|
-
end
|
11
|
-
|
12
8
|
# required for prepared statements
|
13
|
-
conn.instance_variable_set(:@sequel_default_query_options, conn.query_options.dup)
|
14
9
|
Utils.add_prepared_statements_cache(conn)
|
15
10
|
|
16
|
-
conn
|
11
|
+
yield conn
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def _execute(conn, sql, opts)
|
18
|
+
if conn.instance_variable_defined?(:@sequel_default_query_options)
|
19
|
+
return super
|
20
|
+
end
|
17
21
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
conn.instance_variable_set(:@sequel_default_query_options, conn.query_options.dup)
|
23
|
+
conn.query_options.merge!(as: :hash, symbolize_keys: true, cache_rows: false)
|
24
|
+
begin
|
25
|
+
super
|
26
|
+
ensure
|
27
|
+
conn.query_options.replace(conn.remove_instance_variable(:@sequel_default_query_options))
|
23
28
|
end
|
24
29
|
end
|
25
30
|
end
|
@@ -10,9 +10,7 @@ module Sequel
|
|
10
10
|
|
11
11
|
Utils.add_prepared_statements_cache(conn)
|
12
12
|
|
13
|
-
|
14
|
-
yield conn
|
15
|
-
end
|
13
|
+
yield conn
|
16
14
|
end
|
17
15
|
end
|
18
16
|
|
@@ -84,7 +82,9 @@ module Sequel
|
|
84
82
|
# Return the PG::Result containing the query results.
|
85
83
|
def execute_query(sql, args)
|
86
84
|
@db.log_connection_yield(sql, self, args) do
|
87
|
-
|
85
|
+
Utils.set_value(self, :type_map_for_results, PG::TypeMapAllStrings.new) do
|
86
|
+
args ? async_exec_params(sql, args) : async_exec(sql)
|
87
|
+
end
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
@@ -15,8 +15,16 @@ module Sequel
|
|
15
15
|
|
16
16
|
Utils.add_prepared_statements_cache(conn)
|
17
17
|
|
18
|
+
yield conn
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def _execute(type, sql, opts, &block)
|
25
|
+
synchronize(opts[:server]) do |conn|
|
18
26
|
Utils.set_value(conn, :results_as_hash, nil) do
|
19
|
-
|
27
|
+
super
|
20
28
|
end
|
21
29
|
end
|
22
30
|
end
|
@@ -13,8 +13,6 @@ module Sequel
|
|
13
13
|
serializable: :serializable,
|
14
14
|
}
|
15
15
|
|
16
|
-
ACTIVERECORD_CALLBACKS = Object.new.extend(AfterCommitEverywhere)
|
17
|
-
|
18
16
|
def self.extended(db)
|
19
17
|
db.activerecord_model = ActiveRecord::Base
|
20
18
|
db.opts[:test] = false unless db.opts.key?(:test)
|
@@ -50,7 +48,7 @@ module Sequel
|
|
50
48
|
|
51
49
|
# Match database timezone with Active Record.
|
52
50
|
def timezone
|
53
|
-
@timezone ||
|
51
|
+
@timezone || activerecord_timezone
|
54
52
|
end
|
55
53
|
|
56
54
|
private
|
@@ -108,7 +106,7 @@ module Sequel
|
|
108
106
|
# after_commit_everywhere gem.
|
109
107
|
def add_transaction_hook(conn, type, block)
|
110
108
|
if _trans(conn)[:activerecord]
|
111
|
-
|
109
|
+
AfterCommitEverywhere.public_send(type, &block)
|
112
110
|
else
|
113
111
|
super
|
114
112
|
end
|
@@ -120,12 +118,18 @@ module Sequel
|
|
120
118
|
# after_commit_everywhere gem.
|
121
119
|
def add_savepoint_hook(conn, type, block)
|
122
120
|
if _trans(conn)[:savepoints].last[:activerecord]
|
123
|
-
|
121
|
+
AfterCommitEverywhere.public_send(type, &block)
|
124
122
|
else
|
125
123
|
super
|
126
124
|
end
|
127
125
|
end
|
128
126
|
|
127
|
+
# Prevents sql_log_normalizer DB extension from skipping the normalization.
|
128
|
+
def skip_logging?
|
129
|
+
return false if @loaded_extensions.include?(:sql_log_normalizer)
|
130
|
+
super
|
131
|
+
end
|
132
|
+
|
129
133
|
# Active Record doesn't guarantee that a single connection can only be used
|
130
134
|
# by one thread at a time, so we need to use locking, which is what Active
|
131
135
|
# Record does internally as well.
|
@@ -152,6 +156,16 @@ module Sequel
|
|
152
156
|
&block
|
153
157
|
)
|
154
158
|
end
|
159
|
+
|
160
|
+
if ActiveRecord::VERSION::MAJOR >= 7
|
161
|
+
def activerecord_timezone
|
162
|
+
ActiveRecord.default_timezone
|
163
|
+
end
|
164
|
+
else
|
165
|
+
def activerecord_timezone
|
166
|
+
ActiveRecord::Base.default_timezone
|
167
|
+
end
|
168
|
+
end
|
155
169
|
end
|
156
170
|
|
157
171
|
Database.register_extension(:activerecord_connection, ActiveRecordConnection)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "sequel-activerecord_connection"
|
3
|
-
spec.version = "1.2.
|
3
|
+
spec.version = "1.2.5"
|
4
4
|
spec.authors = ["Janko Marohnić"]
|
5
5
|
spec.email = ["janko.marohnic@gmail.com"]
|
6
6
|
|
@@ -9,15 +9,15 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.homepage = "https://github.com/janko/sequel-activerecord_connection"
|
10
10
|
spec.license = "MIT"
|
11
11
|
|
12
|
-
spec.required_ruby_version = ">= 2.
|
12
|
+
spec.required_ruby_version = ">= 2.4"
|
13
13
|
|
14
14
|
spec.add_dependency "sequel", "~> 5.16"
|
15
|
-
spec.add_dependency "activerecord", ">= 4.2", "<
|
16
|
-
spec.add_dependency "after_commit_everywhere", "~>
|
15
|
+
spec.add_dependency "activerecord", ">= 4.2", "< 8"
|
16
|
+
spec.add_dependency "after_commit_everywhere", "~> 1.1"
|
17
17
|
|
18
18
|
spec.add_development_dependency "sequel", "~> 5.38"
|
19
19
|
spec.add_development_dependency "minitest"
|
20
|
-
spec.add_development_dependency "warning"
|
20
|
+
spec.add_development_dependency "warning"
|
21
21
|
|
22
22
|
spec.files = Dir["README.md", "LICENSE.txt", "CHANGELOG.md", "lib/**/*.rb", "*.gemspec"]
|
23
23
|
spec.require_paths = ["lib"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel-activerecord_connection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Janko Marohnić
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
version: '4.2'
|
34
34
|
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
36
|
+
version: '8'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -43,21 +43,21 @@ dependencies:
|
|
43
43
|
version: '4.2'
|
44
44
|
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
46
|
+
version: '8'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: after_commit_everywhere
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: '1.1'
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
60
|
+
version: '1.1'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: sequel
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +123,7 @@ homepage: https://github.com/janko/sequel-activerecord_connection
|
|
123
123
|
licenses:
|
124
124
|
- MIT
|
125
125
|
metadata: {}
|
126
|
-
post_install_message:
|
126
|
+
post_install_message:
|
127
127
|
rdoc_options: []
|
128
128
|
require_paths:
|
129
129
|
- lib
|
@@ -131,15 +131,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
131
|
requirements:
|
132
132
|
- - ">="
|
133
133
|
- !ruby/object:Gem::Version
|
134
|
-
version: '2.
|
134
|
+
version: '2.4'
|
135
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
requirements: []
|
141
|
-
rubygems_version: 3.
|
142
|
-
signing_key:
|
141
|
+
rubygems_version: 3.2.15
|
142
|
+
signing_key:
|
143
143
|
specification_version: 4
|
144
144
|
summary: Allows Sequel to use ActiveRecord connection for database interaction.
|
145
145
|
test_files: []
|