pgsync 0.6.6 → 0.6.7

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: 1097ac9939cf312566746d7d3ff06604ee5997c9e2b85ae38f7d46d77dbdefc9
4
- data.tar.gz: 06b70ef312aa796c9bf083b89a7cd6ff3c8a99920d8b1eabdd290cd67d956559
3
+ metadata.gz: 4af2ef537f2130fb3b60ce705c17dc0ea2292a6d12f074ac14dafdc18e5419e8
4
+ data.tar.gz: 441442b39578dd09b4cbe22a9514f3eda59b7876a8d0c1541eda39631ac9a757
5
5
  SHA512:
6
- metadata.gz: 815aeffa2bd01469b0fbc229a25b8f2ff8b69f28c3bfac21c61f571875bf74914cdaabfe9150d3db271ac2f10dcef4c0c4f542b72f306618b4b2a0985d59d388
7
- data.tar.gz: 128cd39679c96354d93213e611d679275d2c3de75a29b847aa8cb911c03d13f3b9231f7318a5ea3a4b8bc98684eb6a3ed07975159a9d89ee4aa2ac53746365f7
6
+ metadata.gz: '0357909b28157593f8fcc21678efa53c767454c41a2f858b577da9e802aa29d49ffd3f8f835554098d670d82b018e27d7299a091e41022fd1b98a7eb1529232a'
7
+ data.tar.gz: acb5faf68e112427b406b03285d1bf2aa1c42034a186c8a37b617670037f06156e8e8f5dbb222b5fac3ce97e2b6a9d69014be9ca9c9395230c0139028c91e194
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.6.7 (2021-04-26)
2
+
3
+ - Fixed connection security for `--schema-first` and `--schema-only` - [more info](https://github.com/ankane/pgsync/issues/121)
4
+
1
5
  ## 0.6.6 (2020-10-29)
2
6
 
3
7
  - Added support for tables with generated columns
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://travis-ci.org/ankane/pgsync.svg?branch=master)](https://travis-ci.org/ankane/pgsync)
12
+ [![Build Status](https://github.com/ankane/pgsync/workflows/build/badge.svg?branch=master)](https://github.com/ankane/pgsync/actions)
13
13
 
14
14
  ## Installation
15
15
 
@@ -27,7 +27,7 @@ module PgSync
27
27
  # if spinner, capture lines to show on error
28
28
  lines = []
29
29
  success =
30
- run_command("#{dump_command} | #{restore_command}") do |line|
30
+ run_command do |line|
31
31
  if show_spinner
32
32
  lines << line
33
33
  else
@@ -49,12 +49,14 @@ module PgSync
49
49
 
50
50
  private
51
51
 
52
- def run_command(command)
53
- Open3.popen2e(command) do |stdin, stdout, wait_thr|
54
- stdout.each do |line|
52
+ def run_command
53
+ err_r, err_w = IO.pipe
54
+ Open3.pipeline_start(dump_command, restore_command, err: err_w) do |wait_thrs|
55
+ err_w.close
56
+ err_r.each do |line|
55
57
  yield line
56
58
  end
57
- wait_thr.value.success?
59
+ wait_thrs.all? { |t| t.value.success? }
58
60
  end
59
61
  end
60
62
 
@@ -65,19 +67,19 @@ module PgSync
65
67
  end
66
68
 
67
69
  def dump_command
68
- tables =
69
- if !opts[:all_schemas] || opts[:tables] || opts[:groups] || args[0] || opts[:exclude] || opts[:schemas]
70
- @tasks.map { |task| "-t #{Shellwords.escape(task.quoted_table)}" }
71
- else
72
- []
70
+ cmd = ["pg_dump", "-Fc", "--verbose", "--schema-only", "--no-owner", "--no-acl"]
71
+ if !opts[:all_schemas] || opts[:tables] || opts[:groups] || args[0] || opts[:exclude] || opts[:schemas]
72
+ @tasks.each do |task|
73
+ cmd.concat(["-t", task.quoted_table])
73
74
  end
74
-
75
- "pg_dump -Fc --verbose --schema-only --no-owner --no-acl #{tables.join(" ")} -d #{@source.url}"
75
+ end
76
+ cmd.concat(["-d", @source.url])
76
77
  end
77
78
 
78
79
  def restore_command
79
- if_exists = Gem::Version.new(pg_restore_version) >= Gem::Version.new("9.4.0")
80
- "pg_restore --verbose --no-owner --no-acl --clean #{if_exists ? "--if-exists" : nil} -d #{@destination.url}"
80
+ cmd = ["pg_restore", "--verbose", "--no-owner", "--no-acl", "--clean"]
81
+ cmd << "--if-exists" if Gem::Version.new(pg_restore_version) >= Gem::Version.new("9.4.0")
82
+ cmd.concat(["-d", @destination.url])
81
83
  end
82
84
  end
83
85
  end
@@ -1,3 +1,3 @@
1
1
  module PgSync
2
- VERSION = "0.6.6"
2
+ VERSION = "0.6.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgsync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.6
4
+ version: 0.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-30 00:00:00.000000000 Z
11
+ date: 2021-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parallel
@@ -66,48 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: minitest
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rake
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
69
  description:
112
70
  email: andrew@chartkick.com
113
71
  executables:
@@ -152,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
110
  - !ruby/object:Gem::Version
153
111
  version: '0'
154
112
  requirements: []
155
- rubygems_version: 3.1.4
113
+ rubygems_version: 3.2.3
156
114
  signing_key:
157
115
  specification_version: 4
158
116
  summary: Sync Postgres data between databases