Sha256: 9fc6905c5e182c0ccb2fef7462589d9a72cc380d6bd861b9ee503c7e84a13ee9
Contents?: true
Size: 1.7 KB
Versions: 2
Compression:
Stored size: 1.7 KB
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' SCHEMA_VAR = '%%SCHEMA%%' TABLE_PARTS_SEPARATOR = '/' TABLES_SQL = "select schemaname || '#{TABLE_PARTS_SEPARATOR}' || tablename from " \ "pg_tables where schemaname = '#{SCHEMA_VAR}'" def do_clear ts = tables if ts.empty? info 'Database has no tables' else info "Removing #{ts.count} table(s)..." run_sql(drop_tables_sql(ts)) end end def dump_command instance.pg.dump_gzip_command end def load_command instance.pg.load_gzip_command end private # @param table_list [Array<String>] # @return [String] def drop_tables_sql(table_list) "drop table #{table_list.map(&:to_s).join(', ')} cascade" end # @param parts [Array<String>, Strings] # @return [String] def join_table_parts(parts) parts = parts.to_s.split(TABLE_PARTS_SEPARATOR) unless parts.is_a?(::Enumerable) parts.map { |p| "\"#{p}\"" }.join('.') end def run_sql(sql) instance.pg.psql_command_command(sql).execute! end # @return [Array<String>] def tables run_sql(tables_sql).each_line.map(&:strip).compact_blank .map { |line| join_table_parts(line) } end # @return [String] def tables_sql TABLES_SQL.gsub(SCHEMA_VAR, instance.pg.schema) end end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
avm-eac_postgresql_base0-0.5.3 | lib/avm/eac_postgresql_base0/instance/data_unit.rb |
eac_tools-0.86.3 | sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/data_unit.rb |