Class: Avm::EacPostgresqlBase0::Instance

Inherits:
Object
  • Object
show all
Defined in:
lib/avm/eac_postgresql_base0/instance.rb,
lib/avm/eac_postgresql_base0/instance/assert.rb,
lib/avm/eac_postgresql_base0/instance/data_unit.rb

Defined Under Namespace

Classes: Assert, DataUnit

Constant Summary collapse

MAINTENANCE_DATABASE =
'postgres'

Instance Method Summary collapse

Instance Method Details

#assertObject



17
18
19
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 17

def assert
  ::Avm::EacPostgresqlBase0::Instance::Assert.new(self).perform
end

#common_command_args(database = true) ⇒ Object



69
70
71
72
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 69

def common_command_args(database = true)
  ['--host', host, '--username', user, '--port', port,
   (database ? name : MAINTENANCE_DATABASE)]
end

#data_unitObject



21
22
23
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 21

def data_unit
  ::Avm::EacPostgresqlBase0::Instance::DataUnit.new(self)
end

#dump_commandObject



25
26
27
28
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 25

def dump_command
  env.command('pg_dump', '--no-privileges', '--clean', '--no-owner', *common_command_args)
     .envvar('PGPASSWORD', password)
end

#dump_gzip_commandEacRubyUtils::Envs::Command

Returns:

  • (EacRubyUtils::Envs::Command)


31
32
33
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 31

def dump_gzip_command
  dump_command.pipe(gzip_compress_command)
end

#gzip_compress_commandEacRubyUtils::Envs::Command

Returns:

  • (EacRubyUtils::Envs::Command)


36
37
38
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 36

def gzip_compress_command
  env.command('gzip', '-9', '-c')
end

#gzip_decompress_commandEacRubyUtils::Envs::Command

Returns:

  • (EacRubyUtils::Envs::Command)


41
42
43
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 41

def gzip_decompress_command
  env.command('gzip', '-d')
end

#hostObject



74
75
76
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 74

def host
  connection_params[:host] || '127.0.0.1'
end

#load_gzip_commandEacRubyUtils::Envs::Command

Returns:

  • (EacRubyUtils::Envs::Command)


46
47
48
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 46

def load_gzip_command
  gzip_decompress_command.pipe(psql_command)
end

#nameObject



90
91
92
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 90

def name
  connection_params.fetch(:name)
end

#passwordObject



86
87
88
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 86

def password
  connection_params.fetch(:password)
end

#password_command_argumentString

Returns:

  • (String)


51
52
53
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 51

def password_command_argument
  "@ESC_PGPASSWORD=#{password}"
end

#portObject



78
79
80
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 78

def port
  connection_params[:port] || '5432'
end

#psql_command(database = true) ⇒ Object



55
56
57
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 55

def psql_command(database = true)
  env.command(password_command_argument, 'psql', *common_command_args(database))
end

#psql_command_command(sql, database = true) ⇒ Object



59
60
61
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 59

def psql_command_command(sql, database = true)
  psql_command(database).append(['--quiet', '--tuples-only', '--command', sql])
end

#root_psql_command(sql = nil) ⇒ Object



63
64
65
66
67
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 63

def root_psql_command(sql = nil)
  args = ['sudo', '-u', 'postgres', 'psql']
  args += ['--quiet', '--tuples-only', '--command', sql] if sql.present?
  env.command(*args)
end

#userObject



82
83
84
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 82

def user
  connection_params.fetch(:user)
end