pgsync 0.7.4 → 0.8.0

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: bc4b2b6dcbfc310f47e5309a6e8b1f97498f57ff2984ed80ff95d9543904a364
4
- data.tar.gz: 330f54583496a39c3b6dacbbeaecbb478f016dfb6d4ca489291ba948c10b3498
3
+ metadata.gz: 7a7083c722bb2060be572cc9e63911678b17063826fee239de9569f6eb9eb6e3
4
+ data.tar.gz: 1953d0434c070d3123e15d2e25fa5a5a74981a298da08ae39d7bc57c7f2ea00b
5
5
  SHA512:
6
- metadata.gz: 7c7fd83f3b69b6ed6289d71df0fdae65e5a24814eead69256a83fae5671079d19259839312e2fbd974654d8b374c23c9709efc59566af23208d6006526cef6cc
7
- data.tar.gz: 32015c26cc99e4c025a9ee824eaad65ba289164206348d4f5f3fa76bab3e2bcba8bedf695e135439125652c0d6a27bb8aacd14eab75ac970d24a3219554eb910
6
+ metadata.gz: 363586792548ac9e856382c241292e6645b32421acad8dd18e240c095b89ea9fc5bd8a925cc57b2d9cbecca436b6899aa1396aac27cc71876bbf27028e074b06
7
+ data.tar.gz: 6ac5b582f9891428059106d0d40b3e7ddf3bac8442bd92aebb0cd2eff0bda99984ffcb16bd2df5ba6aacdacb58c89bbd0cd7f0d77d1bc59d2dc562c3a9630531
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.8.0 (2024-07-10)
2
+
3
+ - Added Docker image for `linux/arm64`
4
+ - Fixed warning with Ruby 3.3
5
+ - Dropped support for Ruby < 2.7
6
+
1
7
  ## 0.7.4 (2023-03-06)
2
8
 
3
9
  - Fixed issue with slop 4.10.0
data/README.md CHANGED
@@ -9,7 +9,7 @@ Sync data from one Postgres database to another (like `pg_dump`/`pg_restore`). D
9
9
 
10
10
  :tangerine: Battle-tested at [Instacart](https://www.instacart.com/opensource)
11
11
 
12
- [![Build Status](https://github.com/ankane/pgsync/workflows/build/badge.svg?branch=master)](https://github.com/ankane/pgsync/actions)
12
+ [![Build Status](https://github.com/ankane/pgsync/actions/workflows/build.yml/badge.svg)](https://github.com/ankane/pgsync/actions)
13
13
 
14
14
  ## Installation
15
15
 
@@ -252,6 +252,8 @@ For extremely large, append-only tables, sync in batches.
252
252
  pgsync large_table --in-batches
253
253
  ```
254
254
 
255
+ Note: This requires the table to have a numeric, increasing primary key
256
+
255
257
  The script will resume where it left off when run again, making it great for backfills.
256
258
 
257
259
  ## Connection Security
@@ -104,7 +104,7 @@ module PgSync
104
104
  @conn ||= begin
105
105
  begin
106
106
  ENV["PGCONNECT_TIMEOUT"] ||= "3"
107
- if @url =~ /\Apostgres(ql)?:\/\//
107
+ if @url.start_with?("postgres://", "postgresql://")
108
108
  config = @url
109
109
  else
110
110
  config = {dbname: @url}
data/lib/pgsync/task.rb CHANGED
@@ -229,7 +229,7 @@ module PgSync
229
229
 
230
230
  # TODO better performance
231
231
  def rule_match?(table, column, rule)
232
- regex = Regexp.new('\A' + Regexp.escape(rule).gsub('\*','[^\.]*') + '\z')
232
+ regex = Regexp.new('\A' + Regexp.escape(rule).gsub('\*', '[^\.]*') + '\z')
233
233
  regex.match(column) || regex.match("#{table.name}.#{column}") || regex.match("#{table.schema}.#{table.name}.#{column}")
234
234
  end
235
235
 
@@ -72,7 +72,7 @@ module PgSync
72
72
 
73
73
  tables =
74
74
  if value.include?("*")
75
- regex = Regexp.new('\A' + Regexp.escape(value).gsub('\*','[^\.]*') + '\z')
75
+ regex = Regexp.new('\A' + Regexp.escape(value).gsub('\*', '[^\.]*') + '\z')
76
76
  shared_tables.select { |t| regex.match(t.full_name) || regex.match(t.name) }
77
77
  else
78
78
  [to_table(value)]
@@ -145,7 +145,7 @@ module PgSync
145
145
 
146
146
  to_arr(opts[:exclude]).each do |value|
147
147
  if value.include?("*")
148
- regex = Regexp.new('\A' + Regexp.escape(value).gsub('\*','[^\.]*') + '\z')
148
+ regex = Regexp.new('\A' + Regexp.escape(value).gsub('\*', '[^\.]*') + '\z')
149
149
  tables.reject! { |t| regex.match(t.full_name) || regex.match(t.name) }
150
150
  else
151
151
  tables -= [fully_resolve(to_table(value), error: false)].compact
@@ -1,3 +1,3 @@
1
1
  module PgSync
2
- VERSION = "0.7.4"
2
+ VERSION = "0.8.0"
3
3
  end
data/lib/pgsync.rb CHANGED
@@ -13,18 +13,18 @@ require "uri"
13
13
  require "yaml"
14
14
 
15
15
  # modules
16
- require "pgsync/utils"
17
- require "pgsync/client"
18
- require "pgsync/data_source"
19
- require "pgsync/init"
20
- require "pgsync/schema_sync"
21
- require "pgsync/sequence"
22
- require "pgsync/sync"
23
- require "pgsync/table"
24
- require "pgsync/table_sync"
25
- require "pgsync/task"
26
- require "pgsync/task_resolver"
27
- require "pgsync/version"
16
+ require_relative "pgsync/utils"
17
+ require_relative "pgsync/client"
18
+ require_relative "pgsync/data_source"
19
+ require_relative "pgsync/init"
20
+ require_relative "pgsync/schema_sync"
21
+ require_relative "pgsync/sequence"
22
+ require_relative "pgsync/sync"
23
+ require_relative "pgsync/table"
24
+ require_relative "pgsync/table_sync"
25
+ require_relative "pgsync/task"
26
+ require_relative "pgsync/task_resolver"
27
+ require_relative "pgsync/version"
28
28
 
29
29
  module PgSync
30
30
  class Error < StandardError; end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgsync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-07 00:00:00.000000000 Z
11
+ date: 2024-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bigdecimal
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: parallel
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -103,14 +117,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
117
  requirements:
104
118
  - - ">="
105
119
  - !ruby/object:Gem::Version
106
- version: '2.5'
120
+ version: '2.7'
107
121
  required_rubygems_version: !ruby/object:Gem::Requirement
108
122
  requirements:
109
123
  - - ">="
110
124
  - !ruby/object:Gem::Version
111
125
  version: '0'
112
126
  requirements: []
113
- rubygems_version: 3.4.6
127
+ rubygems_version: 3.5.11
114
128
  signing_key:
115
129
  specification_version: 4
116
130
  summary: Sync Postgres data between databases