avm-eac_postgresql_base0 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/avm/eac_postgresql_base0/instance/data_unit.rb +39 -0
- data/lib/avm/eac_postgresql_base0/instance.rb +63 -0
- data/lib/avm/eac_postgresql_base0/instance_with.rb +18 -0
- data/lib/avm/eac_postgresql_base0/version.rb +7 -0
- data/lib/avm/eac_postgresql_base0.rb +9 -0
- metadata +94 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 21a34c355a48e71fa5a12b91b27238a98844495a5742b30ac79b277f7e56fec4
|
4
|
+
data.tar.gz: 9e5b87bbca77cb621b8cb207c1ed220321b6bbfddddf548025461af03fa25aec
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f8edfd9211f650e24d3e93503ceda6f6cce0637abd4111289a3bdf7c2c253d35417b95a497a26a4d3721db8ed711df5ad46ff751f6324b2bf29e34130965bcbc
|
7
|
+
data.tar.gz: e1ab05d6d11d6adbe238e902b787c0fb0994527d951ba2d44f79a686e4138291a9e2f1241caeb6933dc9edfee3c40b41e65ff1322c1ff26e79a77142c32408d6
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/data/instance/unit'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacPostgresqlBase0
|
7
|
+
class Instance
|
8
|
+
class DataUnit < ::Avm::Data::Instance::Unit
|
9
|
+
EXTENSION = '.pgdump.gz'
|
10
|
+
|
11
|
+
before_load :clear_database
|
12
|
+
|
13
|
+
def dump_command
|
14
|
+
instance.dump_gzip_command
|
15
|
+
end
|
16
|
+
|
17
|
+
def load_command
|
18
|
+
instance.psql_command.prepend(['gzip', '-d', '@ESC_|'])
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def clear_database
|
24
|
+
info 'Clearing database (Dropping all tables)...'
|
25
|
+
run_sql(drop_all_tables_sql).if_present { |v| run_sql(v) }
|
26
|
+
end
|
27
|
+
|
28
|
+
def drop_all_tables_sql
|
29
|
+
"select 'drop table \"' || tablename || '\" cascade;' from pg_tables " \
|
30
|
+
"where schemaname = 'public';"
|
31
|
+
end
|
32
|
+
|
33
|
+
def run_sql(sql)
|
34
|
+
instance.psql_command_command(sql).execute!
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_postgresql_base0/instance/data_unit'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacPostgresqlBase0
|
7
|
+
class Instance
|
8
|
+
def initialize(env, connection_params)
|
9
|
+
@env = env
|
10
|
+
@connection_params = connection_params.with_indifferent_access
|
11
|
+
end
|
12
|
+
|
13
|
+
def data_unit
|
14
|
+
::Avm::EacPostgresqlBase0::Instance::DataUnit.new(self)
|
15
|
+
end
|
16
|
+
|
17
|
+
def dump_command
|
18
|
+
env.command('pg_dump', '--no-privileges', '--clean', '--no-owner', *common_command_args)
|
19
|
+
.envvar('PGPASSWORD', password)
|
20
|
+
end
|
21
|
+
|
22
|
+
def dump_gzip_command
|
23
|
+
dump_command.append(['@ESC_|', 'gzip', '-9', '-c'])
|
24
|
+
end
|
25
|
+
|
26
|
+
def psql_command
|
27
|
+
env.command("@ESC_PGPASSWORD=#{password}", 'psql', *common_command_args)
|
28
|
+
end
|
29
|
+
|
30
|
+
def psql_command_command(sql)
|
31
|
+
psql_command.append(['--quiet', '--tuples-only', '--command', sql])
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
attr_reader :env, :connection_params
|
37
|
+
|
38
|
+
def common_command_args
|
39
|
+
['--host', host, '--username', user, '--port', port, name]
|
40
|
+
end
|
41
|
+
|
42
|
+
def host
|
43
|
+
connection_params[:host] || '127.0.0.1'
|
44
|
+
end
|
45
|
+
|
46
|
+
def port
|
47
|
+
connection_params[:port] || '5432'
|
48
|
+
end
|
49
|
+
|
50
|
+
def user
|
51
|
+
connection_params.fetch(:user)
|
52
|
+
end
|
53
|
+
|
54
|
+
def password
|
55
|
+
connection_params.fetch(:password)
|
56
|
+
end
|
57
|
+
|
58
|
+
def name
|
59
|
+
connection_params.fetch(:name)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/instances/entry_keys'
|
4
|
+
require 'avm/eac_postgresql_base0/instance'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacPostgresqlBase0
|
8
|
+
module InstanceWith
|
9
|
+
def pg
|
10
|
+
@pg ||= ::Avm::EacPostgresqlBase0::Instance.new(
|
11
|
+
host_env, user: read_entry(::Avm::Instances::EntryKeys::DATABASE_USERNAME),
|
12
|
+
password: read_entry(::Avm::Instances::EntryKeys::DATABASE_PASSWORD),
|
13
|
+
name: read_entry(::Avm::Instances::EntryKeys::DATABASE_NAME)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: avm-eac_postgresql_base0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Put here the authors
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-12-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: avm
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.12'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.12.1
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.12'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.12.1
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: eac_ruby_utils
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0.82'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.82'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: eac_ruby_gem_support
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.4'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0.4'
|
61
|
+
description:
|
62
|
+
email:
|
63
|
+
executables: []
|
64
|
+
extensions: []
|
65
|
+
extra_rdoc_files: []
|
66
|
+
files:
|
67
|
+
- lib/avm/eac_postgresql_base0.rb
|
68
|
+
- lib/avm/eac_postgresql_base0/instance.rb
|
69
|
+
- lib/avm/eac_postgresql_base0/instance/data_unit.rb
|
70
|
+
- lib/avm/eac_postgresql_base0/instance_with.rb
|
71
|
+
- lib/avm/eac_postgresql_base0/version.rb
|
72
|
+
homepage:
|
73
|
+
licenses: []
|
74
|
+
metadata: {}
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
require_paths:
|
78
|
+
- lib
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
requirements: []
|
90
|
+
rubygems_version: 3.1.6
|
91
|
+
signing_key:
|
92
|
+
specification_version: 4
|
93
|
+
summary: Put here de description.
|
94
|
+
test_files: []
|