Class: PgExport::Utils

Inherits:
Object
  • Object
show all
Extended by:
Logging
Defined in:
lib/pg_export/services/utils.rb

Class Method Summary collapse

Methods included from Logging

logger, logger

Class Method Details

.compress(dump) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/pg_export/services/utils.rb', line 13

def self.compress(dump)
  dump_gz = CompressedDump.new
  dump_gz.open(:write) do |gz|
    gz.write(dump.read_chunk) until dump.eof?
  end

  logger.info "Create #{dump_gz}"
  dump_gz
end

.create_dump(database_name) ⇒ Object

Raises:



5
6
7
8
9
10
11
# File 'lib/pg_export/services/utils.rb', line 5

def self.create_dump(database_name)
  dump = SqlDump.new
  out = `pg_dump -Fc --file #{dump.path} #{database_name} 2>&1`
  raise PgDumpError, out if /FATAL/ =~ out
  logger.info "Create #{dump}"
  dump
end

.decompress(dump_gz) ⇒ Object



23
24
25
26
27
28
29
30
31
32
# File 'lib/pg_export/services/utils.rb', line 23

def self.decompress(dump_gz)
  dump = SqlDump.new
  dump_gz.open(:read) do |gz|
    dump.write(gz.readpartial(Dump::Base::CHUNK_SIZE)) until gz.eof?
  end
  dump.rewind

  logger.info "Create #{dump}"
  dump
end