pgtk 0.30.0 → 0.30.1

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: cbdc13b881e0f4d821ef1472fa129962cc30d3662ee912efa8f1b8b33b564074
4
- data.tar.gz: a7fa85d5ae31e7e03cce4852436396a6082a4454c4d7f70557b8f25cd6a0dc61
3
+ metadata.gz: d8cc144a35224b7437b5de5cfe5e5970089ebd20a87c9f89fa53a60f8a5578bf
4
+ data.tar.gz: 6f21a8773b79f80e14cd47ad35a15a31c5318ca05f904034e7ed5ba07a6cda2f
5
5
  SHA512:
6
- metadata.gz: 5b9e7911574caa29d8377b290b59ff15f5f522d019382da39f0c2501bf7fbdfa7397667af94415f0c3937c7eb441d68f62a4a2661fc79573527f01438438c51d
7
- data.tar.gz: 1da06567aaf82aaab703f23753cd1bb3b548ae01ddebc560c60674345d494f2196e8060017ee237cb69a858f817baf1ae0daf1dd4964839c0dbb5f7465da409a
6
+ metadata.gz: 4b523271c7b969afd5f1768a551f8ad7b2297d53773ae13a6f7daf9049aaa80e92acbeeba7cc9b994b129af13e8e63c805fce289402dab7e25b2e8d2f5a6875b
7
+ data.tar.gz: fa6b23c2d42e536d32bab8e36a06e231b9ee88429bfa2cd75a4077666ae8e05db71e94d02b04b4dc2ee0d2b7394f5c3e0b0c60dfbbfd8696b4cd20108321d233
@@ -133,27 +133,47 @@ class Pgtk::LiquibaseTask < Rake::TaskLib
133
133
  )
134
134
  end
135
135
  return unless @schema
136
- raise 'Cannot generate schema without docker' if @docker == :never
137
136
  @schema = File.expand_path(@schema)
137
+ dump = qbash('pg_dump -V', accept: nil, both: true)
138
+ local = dump[1].zero?
139
+ docker = qbash('docker -v', accept: nil, both: true)[1].zero?
140
+ raise 'Cannot generate schema, install either pg_dump or Docker' unless local || docker
141
+ raise 'You set docker to :always, but Docker is not installed' if @docker == :always && !docker
138
142
  host = yml.dig('pgsql', 'host')
139
- host = donce_host if OS.mac? && ['localhost', '127.0.0.1'].include?(host)
140
143
  Dir.chdir(File.dirname(@schema)) do
141
- out = donce(
142
- image: 'postgres:18.1',
143
- args: OS.mac? ? '' : '--network=host',
144
- env: { 'PGPASSWORD' => password },
145
- command: [
146
- 'pg_dump',
147
- '-h', host,
148
- '-p', yml.dig('pgsql', 'port').to_s,
149
- '-U', yml.dig('pgsql', 'user'),
150
- '-d', yml.dig('pgsql', 'dbname'),
151
- '-n', 'public',
152
- '--schema-only'
153
- ].shelljoin,
154
- stdout: @quiet ? Loog::NULL : Loog::REGULAR,
155
- stderr: Loog::REGULAR
156
- )
144
+ out =
145
+ if (local && @docker != :always) || @docker == :never
146
+ qbash(
147
+ 'pg_dump',
148
+ '-h', Shellwords.escape(host),
149
+ '-p', Shellwords.escape(yml.dig('pgsql', 'port').to_s),
150
+ '-U', Shellwords.escape(yml.dig('pgsql', 'user')),
151
+ '-d', Shellwords.escape(yml.dig('pgsql', 'dbname')),
152
+ '-n', 'public',
153
+ '--schema-only',
154
+ env: { 'PGPASSWORD' => password },
155
+ stdout: @quiet ? Loog::NULL : Loog::REGULAR,
156
+ stderr: Loog::REGULAR
157
+ )
158
+ else
159
+ host = donce_host if OS.mac? && ['localhost', '127.0.0.1'].include?(host)
160
+ donce(
161
+ image: 'postgres:18.1',
162
+ args: OS.mac? ? '' : '--network=host',
163
+ env: { 'PGPASSWORD' => password },
164
+ command: [
165
+ 'pg_dump',
166
+ '-h', host,
167
+ '-p', yml.dig('pgsql', 'port').to_s,
168
+ '-U', yml.dig('pgsql', 'user'),
169
+ '-d', yml.dig('pgsql', 'dbname'),
170
+ '-n', 'public',
171
+ '--schema-only'
172
+ ].shelljoin,
173
+ stdout: @quiet ? Loog::NULL : Loog::REGULAR,
174
+ stderr: Loog::REGULAR
175
+ )
176
+ end
157
177
  File.write(@schema, out)
158
178
  end
159
179
  end
data/lib/pgtk/version.rb CHANGED
@@ -11,5 +11,5 @@ require_relative '../pgtk'
11
11
  # License:: MIT
12
12
  module Pgtk
13
13
  # Current version of the library.
14
- VERSION = '0.30.0' unless defined?(VERSION)
14
+ VERSION = '0.30.1' unless defined?(VERSION)
15
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgtk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.0
4
+ version: 0.30.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko