Class: DatabaseBackupJob

Inherits:
ApplicationJob show all
Defined in:
/var/apps/qpixel/app/jobs/database_backup_job.rb

Instance Method Summary collapse

Methods inherited from ApplicationJob

#exec, #initialize, #logger

Constructor Details

This class inherits a constructor from ApplicationJob

Instance Method Details

#perform(*_args) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File '/var/apps/qpixel/app/jobs/database_backup_job.rb', line 4

def perform(*_args)
  storage = backup_storage

  return unless backup_storage

  timestamp = `date +%s`.strip
  backup_location = AppConfig.server_settings['db_backups_path']
  filename = "#{backup_location}/qpixel-#{timestamp}.sql"
  db_creds = Rails.configuration.database_configuration[Rails.env]

  mysqldump_command = build_command 'mysqldump',
                                    '-h', db_creds['host'],
                                    "--port=#{db_creds['port']}",
                                    '-u', db_creds['username'],
                                    "-p#{db_creds['password']}",
                                    no_tablespaces_flag,
                                    db_creds['database'], '>',
                                    filename

  logger.debug 'Running system command:'
  logger.debug mysqldump_command
  system mysqldump_command
  file_name_only = "qpixel-#{timestamp}.sql"
  storage.upload(file_name_only, File.open(filename), filename: file_name_only,
                 content_type: 'application/sql')
end