Sha256: 3168beadeae252f160cb0fc7a37373ec5751e040ad89a65434dc993217b6410b

Contents?: true

Size: 1.84 KB

Versions: 44

Compression:

Stored size: 1.84 KB

Contents

# frozen_string_literal: true

require 'avm/eac_postgresql_base0/instance/data_unit'
require 'eac_ruby_utils/core_ext'

module Avm
  module EacPostgresqlBase0
    class Instance
      require_sub __FILE__

      MAINTENANCE_DATABASE = 'postgres'

      common_constructor :env, :connection_params do
        self.connection_params = connection_params.with_indifferent_access
      end

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

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

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

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

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

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

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

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

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

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

      def user
        connection_params.fetch(:user)
      end

      def password
        connection_params.fetch(:password)
      end

      def name
        connection_params.fetch(:name)
      end
    end
  end
end

Version data entries

44 entries across 44 versions & 3 rubygems

Version Path
eac_tools-0.47.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
avm-eac_postgresql_base0-0.2.1 lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.46.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
avm-tools-0.129.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.16.0 sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
avm-tools-0.128.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.15.0 sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.14.0 sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.13.0 sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
avm-tools-0.127.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.12.0 sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
avm-tools-0.126.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.11.1 sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
avm-tools-0.125.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.11.0 sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
avm-tools-0.124.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.10.0 sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
avm-tools-0.123.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
eac_tools-0.9.0 sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb
avm-tools-0.122.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb