activerecord-dsql-adapter 0.1.4 → 0.1.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
- checksums.yaml.gz.sig +0 -0
- data/README.md +75 -0
- data/lib/active_record/connection_adapters/dsql/schema_statements.rb +14 -0
- data/lib/active_record/connection_adapters/dsql_adapter.rb +6 -0
- data/lib/activerecord-dsql-adapter.rb +1 -0
- data.tar.gz.sig +0 -0
- metadata +20 -17
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bba333873c829af25ffcf9a57c9eac82af22672f9b23b8ad0e868b9f207da5ae
|
4
|
+
data.tar.gz: 2c958e61542f81683de0dc04bae5e0b8dde6002aa2128e8f4c1e4933063f27be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47cbd5b86957b9bc556ac3929ea2393d76363ffd0fa8ac7df96c9b8bbb2794ec5caf6c7d01c5d103b6440b2d1326fd7b37c648a7c765a4d40d5c3b4d9a3db3a6
|
7
|
+
data.tar.gz: 1038d78431011751fca28ecf41a9982061a1749833fe61efe8f1005d01cd09446faf8773d337cbb92bd7112bbf6d35e2d116ec5e03492c392859b609ef698553
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.md
CHANGED
@@ -35,6 +35,81 @@ dsql-example(dev)> ActiveRecord::Base.connection.execute("SELECT 1")
|
|
35
35
|
=> #<PG::Result:0x00000001238b39a8 status=PGRES_TUPLES_OK ntuples=1 nfields=1 cmd_tuples=1>
|
36
36
|
```
|
37
37
|
|
38
|
+
```
|
39
|
+
rails dbconsole -p
|
40
|
+
psql (14.13 (Homebrew), server 16.5)
|
41
|
+
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_128_GCM_SHA256, bits: 128, compression: off)
|
42
|
+
Type "help" for help.
|
43
|
+
|
44
|
+
[postgres] >
|
45
|
+
```
|
46
|
+
|
47
|
+
```
|
48
|
+
$ rails generate scaffold create_posts title:string body:text
|
49
|
+
invoke active_record
|
50
|
+
create db/migrate/20241204112954_create_posts.rb
|
51
|
+
create app/models/post.rb
|
52
|
+
invoke resource_route
|
53
|
+
route resources :posts
|
54
|
+
invoke scaffold_controller
|
55
|
+
create app/controllers/posts_controller.rb
|
56
|
+
invoke erb
|
57
|
+
create app/views/posts
|
58
|
+
create app/views/posts/index.html.erb
|
59
|
+
create app/views/posts/edit.html.erb
|
60
|
+
create app/views/posts/show.html.erb
|
61
|
+
create app/views/posts/new.html.erb
|
62
|
+
create app/views/posts/_form.html.erb
|
63
|
+
create app/views/posts/_post.html.erb
|
64
|
+
invoke resource_route
|
65
|
+
invoke helper
|
66
|
+
create app/helpers/posts_helper.rb
|
67
|
+
|
68
|
+
$ rails db:migrate
|
69
|
+
== 20241204112954 CreatePosts: migrating ======================================
|
70
|
+
-- create_table(:posts)
|
71
|
+
-> 0.3887s
|
72
|
+
== 20241204112954 CreatePosts: migrated (0.3889s) =============================
|
73
|
+
|
74
|
+
$ rails console
|
75
|
+
Loading development environment (Rails 7.2.2)
|
76
|
+
|
77
|
+
pry(main)> post = Post.create!(title: "Hello, world!")
|
78
|
+
TRANSACTION (218.9ms) BEGIN
|
79
|
+
Post Create (530.9ms) INSERT INTO "posts" ("title", "body", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["title", "Hello, world!"], ["body", nil], ["created_at", "2024-12-04 11:37:41.238422"], ["updated_at", "2024-12-04 11:37:41.238422"]]
|
80
|
+
TRANSACTION (276.7ms) COMMIT
|
81
|
+
=> #<Post:0x00000001267f30d8 id: "5b642ccc-c5e1-4d7c-828b-70fc107bf6e9", title: "Hello, world!", body: nil, created_at: "2024-12-04 11:37:41.238422000 +0000", updated_at: "2024-12-04 11:37:41.238422000 +0000">
|
82
|
+
|
83
|
+
pry(main)> post.update!(body: "Should probably write something...")
|
84
|
+
TRANSACTION (221.5ms) BEGIN
|
85
|
+
Post Update (503.8ms) UPDATE "posts" SET "body" = $1, "updated_at" = $2 WHERE "posts"."id" = $3 [["body", "Should probably write something..."], ["updated_at", "2024-12-04 11:37:54.659673"], ["id", "5b642ccc-c5e1-4d7c-828b-70fc107bf6e9"]]
|
86
|
+
TRANSACTION (258.7ms) COMMIT
|
87
|
+
=> true
|
88
|
+
|
89
|
+
pry(main)> post.destroy!
|
90
|
+
TRANSACTION (217.6ms) BEGIN
|
91
|
+
Post Destroy (439.5ms) DELETE FROM "posts" WHERE "posts"."id" = $1 [["id", "5b642ccc-c5e1-4d7c-828b-70fc107bf6e9"]]
|
92
|
+
TRANSACTION (230.3ms) COMMIT
|
93
|
+
=> #<Post:0x00000001267f30d8 id: "5b642ccc-c5e1-4d7c-828b-70fc107bf6e9", title: "Hello, world!", body: "Should probably write something...", created_at: "2024-12-04 11:37:41.238422000 +0000", updated_at: "2024-12-04 11:37:54.659673000 +0000">
|
94
|
+
```
|
95
|
+
|
96
|
+
```ruby
|
97
|
+
# db/schema.rb
|
98
|
+
|
99
|
+
ActiveRecord::Schema[7.2].define(version: 2024_12_04_112954) do
|
100
|
+
create_table "posts", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
101
|
+
t.string "title"
|
102
|
+
t.text "body"
|
103
|
+
t.datetime "created_at", null: false
|
104
|
+
t.datetime "updated_at", null: false
|
105
|
+
|
106
|
+
t.unique_constraint ["id"], name: "posts_id_key"
|
107
|
+
end
|
108
|
+
end
|
109
|
+
```
|
110
|
+
|
111
|
+
DSQL does not support `CREATE DATABASE` so `db:create` and `db:drop` do not work. But `db:prepare` can load the schema for you.
|
112
|
+
|
38
113
|
## Development
|
39
114
|
|
40
115
|
After checking out the repo, run `script/setup` to install dependencies. You can also run `script/console` for an interactive prompt that will allow you to experiment.
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
module ConnectionAdapters
|
5
|
+
module DSQL
|
6
|
+
module SchemaStatements
|
7
|
+
def add_index_options(table_name, column_name, **options) # :nodoc:
|
8
|
+
options[:algorithm] = :async
|
9
|
+
super
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -10,6 +10,8 @@ module ActiveRecord
|
|
10
10
|
class DSQLAdapter < PostgreSQLAdapter
|
11
11
|
ADAPTER_NAME = "DSQL"
|
12
12
|
|
13
|
+
include ActiveRecord::ConnectionAdapters::DSQL::SchemaStatements
|
14
|
+
|
13
15
|
class << self
|
14
16
|
def new_client(conn_params)
|
15
17
|
conn_params[:sslmode] ||= "require"
|
@@ -119,6 +121,10 @@ module ActiveRecord
|
|
119
121
|
false
|
120
122
|
end
|
121
123
|
|
124
|
+
def index_algorithms
|
125
|
+
{ async: "ASYNC" }
|
126
|
+
end
|
127
|
+
|
122
128
|
# Ignore DSQL sys schema.
|
123
129
|
#
|
124
130
|
# https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-systems-tables.html
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,18 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-dsql-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Cochran
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain:
|
11
10
|
- |
|
12
11
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
12
|
+
MIIDKDCCAhCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADA6MQ0wCwYDVQQDDARzajI2
|
14
13
|
MRQwEgYKCZImiZPyLGQBGRYEc2oyNjETMBEGCgmSJomT8ixkARkWA2NvbTAeFw0y
|
15
|
-
|
14
|
+
NTA5MDEwNTU2MDhaFw0yNjA5MDEwNTU2MDhaMDoxDTALBgNVBAMMBHNqMjYxFDAS
|
16
15
|
BgoJkiaJk/IsZAEZFgRzajI2MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkq
|
17
16
|
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr60Eo/ttCk8GMTMFiPr3GoYMIMFvLak
|
18
17
|
xSmTk9YGCB6UiEePB4THSSA5w6IPyeaCF/nWkDp3/BAam0eZMWG1IzYQB23TqIM0
|
@@ -21,29 +20,35 @@ cert_chain:
|
|
21
20
|
4O/FL2ChjL2CPCpLZW55ShYyrzphWJwLOJe+FJ/ZBl6YXwrzQM9HKnt4titSNvyU
|
22
21
|
KzE3L63A3PZvExzLrN9u09kuWLLJfXB2sGOlw3n9t72rJiuBr3/OQQIDAQABozkw
|
23
22
|
NzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU99dfRjEKFyczTeIz
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
m3ZsDWrNC80wDQYJKoZIhvcNAQELBQADggEBABLxSFRmde7YPaefFvqzjWZ7snrT
|
24
|
+
/QdsnhlLypvIUeGCuLemQKq5sO7YFJ4UUnYbzrhPScnh5odx0XuXDWLN2Xr7Sz9A
|
25
|
+
cw4c0gEWhZAv5xm9taOyw0Wuy2u7RNeAgLikufrIdr+Fei4fj0zEzdUQs6OxDZBV
|
26
|
+
ZJpG1F3YsIupbaQEFZFOMoP111ziIeddeS/+xJYB9iXxWdgBcKgPchpPjp//D1kk
|
27
|
+
rbxUJAPpJ+AnctA9Kgqa7b71x6DG8aFCTN3TUGKpQUnt5Qe6eynYnNBQ+yyo8J8r
|
28
|
+
rVaBG/8I33rEoBAyw3BuV44TS7DG1kGbv4DOByI46JFAZU4aLEr6lpAmvPs=
|
30
29
|
-----END CERTIFICATE-----
|
31
|
-
date:
|
30
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
32
31
|
dependencies:
|
33
32
|
- !ruby/object:Gem::Dependency
|
34
33
|
name: activerecord
|
35
34
|
requirement: !ruby/object:Gem::Requirement
|
36
35
|
requirements:
|
37
|
-
- - "
|
36
|
+
- - ">="
|
38
37
|
- !ruby/object:Gem::Version
|
39
38
|
version: 7.2.0
|
39
|
+
- - "<"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '9'
|
40
42
|
type: :runtime
|
41
43
|
prerelease: false
|
42
44
|
version_requirements: !ruby/object:Gem::Requirement
|
43
45
|
requirements:
|
44
|
-
- - "
|
46
|
+
- - ">="
|
45
47
|
- !ruby/object:Gem::Version
|
46
48
|
version: 7.2.0
|
49
|
+
- - "<"
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '9'
|
47
52
|
- !ruby/object:Gem::Dependency
|
48
53
|
name: pg
|
49
54
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,7 +77,6 @@ dependencies:
|
|
72
77
|
- - ">="
|
73
78
|
- !ruby/object:Gem::Version
|
74
79
|
version: '0'
|
75
|
-
description:
|
76
80
|
email:
|
77
81
|
- sj26@sj26.com
|
78
82
|
executables: []
|
@@ -82,6 +86,7 @@ files:
|
|
82
86
|
- README.md
|
83
87
|
- lib/active_record/connection_adapters/dsql/railtie.rb
|
84
88
|
- lib/active_record/connection_adapters/dsql/schema_dumper.rb
|
89
|
+
- lib/active_record/connection_adapters/dsql/schema_statements.rb
|
85
90
|
- lib/active_record/connection_adapters/dsql_adapter.rb
|
86
91
|
- lib/active_record/tasks/dsql_database_tasks.rb
|
87
92
|
- lib/activerecord-dsql-adapter.rb
|
@@ -91,7 +96,6 @@ metadata:
|
|
91
96
|
homepage_uri: https://github.com/sj26/activerecord-dsql-adapter
|
92
97
|
source_code_uri: https://github.com/sj26/activerecord-dsql-adapter
|
93
98
|
changelog_uri: https://github.com/sj26/activerecord-dsql-adapter/releases
|
94
|
-
post_install_message:
|
95
99
|
rdoc_options: []
|
96
100
|
require_paths:
|
97
101
|
- lib
|
@@ -106,8 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
110
|
- !ruby/object:Gem::Version
|
107
111
|
version: '0'
|
108
112
|
requirements: []
|
109
|
-
rubygems_version: 3.
|
110
|
-
signing_key:
|
113
|
+
rubygems_version: 3.7.2
|
111
114
|
specification_version: 4
|
112
115
|
summary: ActiveRecord adapter for AWS Aurora DSQL (PostgreSQL)
|
113
116
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|