Sha256: a27b1035201c642db41438f154a8e08224a78b8bb62fa8c4e2f66a672be4ad34

Contents?: true

Size: 902 Bytes

Versions: 7

Compression:

Stored size: 902 Bytes

Contents

# frozen_string_literal: true

require 'avm/instances/data/unit'

module Avm
  module EacPostgresqlBase0
    class Instance
      class DataUnit < ::Avm::Instances::Data::Unit
        EXTENSION = '.pgdump.gz'

        before_load :clear_database

        def dump_command
          instance.dump_gzip_command
        end

        def load_command
          instance.psql_command.prepend(['gzip', '-d', '@ESC_|'])
        end

        private

        def clear_database
          info 'Clearing database (Dropping all tables)...'
          run_sql(drop_all_tables_sql).if_present { |v| run_sql(v) }
        end

        def drop_all_tables_sql
          "select 'drop table \"' || tablename || '\" cascade;' from pg_tables " \
            "where schemaname = 'public';"
        end

        def run_sql(sql)
          instance.psql_command_command(sql).execute!
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
eac_tools-0.48.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/data_unit.rb
eac_tools-0.47.2 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/data_unit.rb
avm-eac_postgresql_base0-0.2.2 lib/avm/eac_postgresql_base0/instance/data_unit.rb
eac_tools-0.47.1 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/data_unit.rb
eac_tools-0.47.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/data_unit.rb
avm-eac_postgresql_base0-0.2.1 lib/avm/eac_postgresql_base0/instance/data_unit.rb
eac_tools-0.46.0 sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/data_unit.rb