Class: HR_Deploy::MigrateDBTask

Inherits:
Task
  • Object
show all
Defined in:
lib/hr_deploy/tasks/migrate_db_task.rb

Instance Attribute Summary

Attributes inherited from Task

#end_time, #error, #start_time

Instance Method Summary collapse

Methods inherited from Task

#initialize, #successful?

Constructor Details

This class inherits a constructor from HR_Deploy::Task

Instance Method Details

#reversal_instructionObject



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/hr_deploy/tasks/migrate_db_task.rb', line 33

def reversal_instruction
  if target.backup_db?
    "Database was migrated\n" +
        'To list database backups: ' +
        "heroku pgbackups --remote #{target.name}\n" +
        'To restore from backup if needed: ' +
        "heroku pgbackups:restore [database name] [version] --remote #{target.name}"
  else
    nil
  end
end

#runObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/hr_deploy/tasks/migrate_db_task.rb', line 7

def run
  print_stage 'Migrating database...'

  execute_system_command("heroku run rake db:migrate --remote #{target.name}")

  if dry_run? || !confirm?
    self.success = true
    return
  end

  if confirm_successful?('Database migrated?')
    self.success = true
  else
    self.success = false

    error = 'Could not migrate database'
    if target.backup_db?
      error += "\nTo list database backups: heroku pgbackups --remote #{target.name}\n" +
          'To restore from backup if needed: ' +
          "heroku pgbackups:restore [database name] [version] --remote #{target.name}"
    end

    self.error = error
  end
end