Method: Gleis::Database.backup

Defined in:
lib/gleis/database.rb

.backup(app_name) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/gleis/database.rb', line 4

def self.backup(app_name)
  token = Token.check
  Utils.check_for_local_pg_command('pg_dump')
  url = Config.get_env_var(app_name, token, 'DATABASE_URL')
  abort('There is no database configured under the DATABASE_URL variable.') unless url
  db_name = url.split('/').last
  timestamp = Time.now.strftime('%Y%m%d%H%M%S')
  backup_file = File.join(Dir.home, "#{app_name}_#{db_name}_#{timestamp}.pgdump")
  if system("pg_dump -f #{backup_file} #{url}")
    puts "Database configured at DATABASE_URL succesfully backed up locally in #{backup_file}"
  else
    puts 'Failed to backup database configured under DATABASE_URL'
  end
end