diff options
-rw-r--r-- | app/models/backup_job.rb | 9 | ||||
-rw-r--r-- | lib/tasks/backup.rake | 6 |
2 files changed, 13 insertions, 2 deletions
diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb index a04f6c0..48dd27e 100644 --- a/app/models/backup_job.rb +++ b/app/models/backup_job.rb @@ -12,12 +12,17 @@ class BackupJob < ActiveRecord::Base private def set_state_to_queued - self.state = 'queued' + self.state ||= 'queued' self.started_at = Time.now end def initiate_backup - self.delay.make_a_backup + if self.state == 'force now' + self.state = 'queued' + self.make_a_backup + else + self.delay.make_a_backup + end end def make_a_backup diff --git a/lib/tasks/backup.rake b/lib/tasks/backup.rake index f08bb39..51fd2f2 100644 --- a/lib/tasks/backup.rake +++ b/lib/tasks/backup.rake @@ -10,6 +10,12 @@ namespace :backup do echo "BackupJob ID: #{backup_job.id}" end + desc "Do a backup. Now!" + task :force_now => :environment do + backup_job = BackupJob.create(:state => 'force now') + echo "BackupJob ID: #{backup_job.id}" + end + desc "Restore the system" task :restore => :environment do # This task takes the first RestoreJob to restore the system. |