ar-sequence 0.2.0 → 0.2.1

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: c49266237b1bb2277bd1faf015012d5df5c1f99c5ce72d340ba557e5e9efe63a
4
- data.tar.gz: 90e809000f14898f02ad2758a7c0138866138916aa2382a7c70740ac711da979
3
+ metadata.gz: 31fd2b32e3b380066c4a9a8a50fa84ed0c880aaec06da39ead297f2d195ac382
4
+ data.tar.gz: 747332c2d4f177a524dbd212ff4e4f710812c97bf7e409efa5df571963d83de9
5
5
  SHA512:
6
- metadata.gz: 06fc48bb39c6d3ffc0520073c4a34fd42e6478204051f6137441f16aa9a5b25c8b47fe363575a8a07a543bc32ba02ab472a78a1a6592f2c6e205e38feecac701
7
- data.tar.gz: 647a3030e07c4d95c07f2f49376145c96fb2832590e9c84b56946598a2db7810d94e4cd1e72ecf99a44902e65d40b7210f2b4de1bf79cfca7475beab420fbdad
6
+ metadata.gz: d2b5de771db2981bf6ee1403b2a96cee69065434c978e1f09a1a210998d63d8bfd33096620fbf82685409d48222a794e166f3409d1edea73a8333fc241e92c96
7
+ data.tar.gz: 91d0005d29df02998ce1213371dddd75db069f10204349b18456cef296082f4ac2aa33a247b061a0f54d6a001fe9d689b1c4d0df9c67610067cc09a8e1da32b4
@@ -1,15 +1,11 @@
1
+ ---
1
2
  name: Tests
2
3
 
3
4
  on:
4
5
  pull_request:
5
- branches:
6
- - main
7
6
  push:
8
- branches:
9
- - main
10
-
11
- schedule:
12
- - cron: "0 10 * * *"
7
+ workflow_dispatch:
8
+ inputs: {}
13
9
 
14
10
  jobs:
15
11
  build:
@@ -18,13 +14,12 @@ jobs:
18
14
  strategy:
19
15
  fail-fast: false
20
16
  matrix:
21
- ruby: [2.6.x, 2.7.x]
17
+ ruby: ["2.7", "3.0"]
22
18
  gemfile:
23
19
  - Gemfile
20
+ - gemfiles/7_0.gemfile
21
+ - gemfiles/6_1.gemfile
24
22
  - gemfiles/6_0.gemfile
25
- - gemfiles/5_2.gemfile
26
- - gemfiles/5_1.gemfile
27
- - gemfiles/5_0.gemfile
28
23
 
29
24
  services:
30
25
  postgres:
@@ -35,7 +30,7 @@ jobs:
35
30
  --health-retries 5
36
31
 
37
32
  steps:
38
- - uses: actions/checkout@v2.3.4
33
+ - uses: actions/checkout@v2.4.0
39
34
 
40
35
  - uses: actions/cache@v2
41
36
  with:
@@ -48,7 +43,7 @@ jobs:
48
43
  hashFiles(matrix.gemfile) }}
49
44
 
50
45
  - name: Set up Ruby
51
- uses: actions/setup-ruby@v1
46
+ uses: ruby/setup-ruby@v1
52
47
  with:
53
48
  ruby-version: ${{ matrix.ruby }}
54
49
 
data/.rubocop.yml CHANGED
@@ -3,7 +3,7 @@ inherit_gem:
3
3
  rubocop-fnando: .rubocop.yml
4
4
 
5
5
  AllCops:
6
- TargetRubyVersion: 2.6
6
+ TargetRubyVersion: 2.7
7
7
 
8
8
  Naming/FileName:
9
9
  Enabled: false
data/CHANGELOG.md CHANGED
@@ -11,7 +11,11 @@ Prefix your message with one of the following:
11
11
  - [Security] in case of vulnerabilities.
12
12
  -->
13
13
 
14
- ## v0.2.0
14
+ ## v0.2.1 - 2021-12-21
15
+
16
+ - [Changed] Dump schema names that aren't on the default search path.
17
+
18
+ ## v0.2.0 - 2021-09-16
15
19
 
16
20
  - [Changed] Only dump sequences created by ar_sequence (using Postgres COMMENT).
17
21
 
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![Gem](https://img.shields.io/gem/v/ar-sequence.svg)](https://rubygems.org/gems/ar-sequence)
6
6
  [![Gem](https://img.shields.io/gem/dt/ar-sequence.svg)](https://rubygems.org/gems/ar-sequence)
7
7
 
8
- TODO: Add project description here
8
+ Add support for PostgreSQL's `SEQUENCE` on ActiveRecord migrations.
9
9
 
10
10
  ## Installation
11
11
 
data/ar-sequence.gemspec CHANGED
@@ -7,8 +7,8 @@ Gem::Specification.new do |spec|
7
7
  spec.version = AR::Sequence::VERSION
8
8
  spec.authors = ["Nando Vieira"]
9
9
  spec.email = ["fnando.vieira@gmail.com"]
10
- spec.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
11
-
10
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
11
+ spec.metadata = {"rubygems_mfa_required" => "true"}
12
12
  spec.summary = "Add support for PostgreSQL's SEQUENCE on " \
13
13
  "ActiveRecord migrations"
14
14
  spec.description = spec.summary
@@ -3,4 +3,4 @@
3
3
  source "https://rubygems.org"
4
4
  gemspec path: ".."
5
5
 
6
- gem "activerecord", "~> 5.0.0"
6
+ gem "activerecord", "~> 6.1.0"
@@ -3,4 +3,4 @@
3
3
  source "https://rubygems.org"
4
4
  gemspec path: ".."
5
5
 
6
- gem "activerecord", "~> 5.1.0"
6
+ gem "activerecord", "~> 7.0.0"
@@ -19,7 +19,7 @@ module AR
19
19
 
20
20
  def create_sequence(name, options = {})
21
21
  increment = options[:increment] || options[:step]
22
- name = quote_column_name(name)
22
+ name = quote_name(name)
23
23
 
24
24
  sql = ["CREATE SEQUENCE IF NOT EXISTS #{name}"]
25
25
  sql << "INCREMENT BY #{increment}" if increment
@@ -35,10 +35,14 @@ module AR
35
35
  # drop_sequence :user_position
36
36
  #
37
37
  def drop_sequence(name)
38
- name = quote_column_name(name)
38
+ name = quote_name(name)
39
39
  sql = "DROP SEQUENCE #{name}"
40
40
  execute(sql)
41
41
  end
42
+
43
+ def quote_name(name)
44
+ name.split(".", 2).map {|part| quote_column_name(part) }.join(".")
45
+ end
42
46
  end
43
47
  end
44
48
  end
@@ -8,12 +8,32 @@ module AR
8
8
  sequences(stream)
9
9
  end
10
10
 
11
+ def retrieve_search_path
12
+ user = @connection.select_one("select user").values.first
13
+
14
+ @connection
15
+ .select_one("show search_path")
16
+ .values
17
+ .first
18
+ .split(", ")
19
+ .map {|path| path == '"$user"' ? user : path }
20
+ end
21
+
11
22
  def sequences(stream)
12
23
  sequences = @connection.check_sequences
24
+ search_path = retrieve_search_path
25
+
13
26
  return if sequences.empty?
14
27
 
15
28
  sequences.each do |seq|
16
- next unless @connection.custom_sequence?(seq["sequence_name"])
29
+ schema = seq["sequence_schema"]
30
+
31
+ sequence_full_name = [
32
+ search_path.include?(schema) ? nil : schema,
33
+ seq["sequence_name"]
34
+ ].compact.join(".")
35
+
36
+ next unless @connection.custom_sequence?(sequence_full_name)
17
37
 
18
38
  start_value = seq["start_value"]
19
39
  increment = seq["increment"]
@@ -30,7 +50,7 @@ module AR
30
50
 
31
51
  statement = [
32
52
  "create_sequence",
33
- seq["sequence_name"].inspect
53
+ sequence_full_name.inspect
34
54
  ].join(" ")
35
55
 
36
56
  if options.any?
@@ -2,6 +2,6 @@
2
2
 
3
3
  module AR
4
4
  module Sequence
5
- VERSION = "0.2.0"
5
+ VERSION = "0.2.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar-sequence
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-16 00:00:00.000000000 Z
11
+ date: 2021-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -162,10 +162,9 @@ files:
162
162
  - ar-sequence.gemspec
163
163
  - bin/console
164
164
  - bin/setup
165
- - gemfiles/5_0.gemfile
166
- - gemfiles/5_1.gemfile
167
- - gemfiles/5_2.gemfile
168
165
  - gemfiles/6_0.gemfile
166
+ - gemfiles/6_1.gemfile
167
+ - gemfiles/7_0.gemfile
169
168
  - lib/ar-sequence.rb
170
169
  - lib/ar/sequence.rb
171
170
  - lib/ar/sequence/adapter.rb
@@ -176,7 +175,8 @@ files:
176
175
  homepage: https://rubygems.org/gems/ar-sequence
177
176
  licenses:
178
177
  - MIT
179
- metadata: {}
178
+ metadata:
179
+ rubygems_mfa_required: 'true'
180
180
  post_install_message:
181
181
  rdoc_options: []
182
182
  require_paths:
@@ -185,14 +185,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - ">="
187
187
  - !ruby/object:Gem::Version
188
- version: 2.6.0
188
+ version: 2.7.0
189
189
  required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - ">="
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
- rubygems_version: 3.2.22
195
+ rubygems_version: 3.2.32
196
196
  signing_key:
197
197
  specification_version: 4
198
198
  summary: Add support for PostgreSQL's SEQUENCE on ActiveRecord migrations
data/gemfiles/5_2.gemfile DELETED
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
- gemspec path: ".."
5
-
6
- gem "activerecord", "~> 5.2.0"