Module: UffDbLoader::Postgresql

Defined in:
lib/uff_db_loader/postgresql.rb

Class Method Summary collapse

Class Method Details

.create_database(database_name) ⇒ Object



25
26
27
# File 'lib/uff_db_loader/postgresql.rb', line 25

def self.create_database(database_name)
  ActiveRecord::Base.connection.execute("CREATE DATABASE #{database_name};")
end

.drop_database(database_name) ⇒ Object



29
30
31
# File 'lib/uff_db_loader/postgresql.rb', line 29

def self.drop_database(database_name)
  ActiveRecord::Base.connection.execute("DROP DATABASE IF EXISTS #{database_name};")
end

.dump_command_templateObject



9
10
11
# File 'lib/uff_db_loader/postgresql.rb', line 9

def self.dump_command_template
  "ssh %user%@%host% \"docker exec -i %container_name% sh -c 'exec pg_dump --username \\$POSTGRES_USER --clean --no-owner --no-acl --format=c %database%'\" > %target%"
end

.dump_extensionObject



5
6
7
# File 'lib/uff_db_loader/postgresql.rb', line 5

def self.dump_extension
  "dump"
end

.list_databasesObject



17
18
19
20
21
22
23
# File 'lib/uff_db_loader/postgresql.rb', line 17

def self.list_databases
  ActiveRecord::Base
    .connection
    .execute("SELECT datname FROM pg_database;")
    .values
    .flatten
end

.restore_command(database_name, result_file_path, config) ⇒ Object



13
14
15
# File 'lib/uff_db_loader/postgresql.rb', line 13

def self.restore_command(database_name, result_file_path, config)
  "#{File.join(config.local_restore_command_path || "pg_restore")} --username postgres --clean --if-exists --no-owner --no-acl --dbname #{database_name} #{result_file_path}"
end