29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/edb/dbms/postgresql.rb', line 29
def backup(dir_name)
db = ::EDB.opts[:DBMS][:PostgreSQL]
files = {
dump: File.join(dir_name, "#{db[:database]}.sql"),
cluster: File.join(dir_name, 'cluster.sql')
}
::EDB::Logger.log(:info, "Dumping #{db[:database]}...")
pg_dump = db[:binpath] && !db[:binpath].empty? ? File.join(db[:binpath], 'pg_dump') : 'pg_dump'
system "PGPASSWORD='#{db[:password]}' #{pg_dump} -h #{db[:host]} -p #{db[:port]} -U #{db[:username]} -F c -b -f '#{files[:dump]}' #{db[:database]}"
::EDB::Logger.log(:info, 'Dumping the cluster...')
pg_dumpall = db[:binpath] && !db[:binpath].empty? ? File.join(db[:binpath], 'pg_dumpall') : 'pg_dumpall'
system "PGPASSWORD='#{db[:password]}' #{pg_dumpall} -h #{db[:host]} -p #{db[:port]} -U #{db[:username]} -f '#{files[:cluster]}'"
files.values
end
|