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



48
49
50
51
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 48

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_commandObject



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

def dump_gzip_command
  dump_command.append(['@ESC_|', 'gzip', '-9', '-c'])
end

#hostObject



53
54
55
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 53

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

#nameObject



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

def name
  connection_params.fetch(:name)
end

#passwordObject



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

def password
  connection_params.fetch(:password)
end

#portObject



57
58
59
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 57

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

#psql_command(database = true) ⇒ Object



34
35
36
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 34

def psql_command(database = true)
  env.command("@ESC_PGPASSWORD=#{password}", 'psql', *common_command_args(database))
end

#psql_command_command(sql, database = true) ⇒ Object



38
39
40
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 38

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

#root_psql_command(sql = nil) ⇒ Object



42
43
44
45
46
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 42

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



61
62
63
# File 'lib/avm/eac_postgresql_base0/instance.rb', line 61

def user
  connection_params.fetch(:user)
end