From fa425a7dda9255b9bcc190aedd4b1fb4ece6892f Mon Sep 17 00:00:00 2001 From: Antonin Januska Date: Thu, 10 Apr 2014 09:07:49 -0500 Subject: [PATCH 1/3] Genesis backup command --- deployment/lib/sync.rb | 19 +++++++++++++++++++ generator/app/templates/gitignore | 1 + 2 files changed, 20 insertions(+) diff --git a/deployment/lib/sync.rb b/deployment/lib/sync.rb index b8471a3..e1c4874 100644 --- a/deployment/lib/sync.rb +++ b/deployment/lib/sync.rb @@ -116,4 +116,23 @@ end end end + + namespace :backup do + desc "Downloads remote database into the backups folder" + task :default do + db + end + + desc "Downloads remote database into the backups folder" + task :db, :roles => :db, :once => true do + set :backup_dir, "#{deploy_to}/backups" + set :backup_name, DateTime.now.strftime("#{db_name}.%Y-%m-%d.%H%M%S.sql") + set :backup_path, "#{backup_dir}/#{backup_name}" + + run "mkdir -p #{backup_dir}" + run "mysqldump -u'#{db_user}' -p'#{db_password}' -h'#{db_host}' --opt --databases '#{db_name}' | gzip --rsyncable > #{backup_path}.gz" + + download "#{backup_path}.gz", "backups/#{backup_name}.gz", :via => :scp + end + end end diff --git a/generator/app/templates/gitignore b/generator/app/templates/gitignore index 443e1d9..3adb294 100644 --- a/generator/app/templates/gitignore +++ b/generator/app/templates/gitignore @@ -35,6 +35,7 @@ nbproject .vagrant _notes bower_components +backups # Application files to ignore error_log From 9e0f297d618a31eaffe47b0b53d39879fb2ceacc Mon Sep 17 00:00:00 2001 From: Antonin Januska Date: Thu, 10 Apr 2014 09:21:49 -0500 Subject: [PATCH 2/3] Invoke backup --- deployment/lib/sync.rb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/deployment/lib/sync.rb b/deployment/lib/sync.rb index e1c4874..b01aa08 100644 --- a/deployment/lib/sync.rb +++ b/deployment/lib/sync.rb @@ -54,15 +54,11 @@ desc "Downloads remote database into Vagrant" task :db, :roles => :db, :once => true do - set :backup_dir, "#{deploy_to}/backups" - set :backup_name, DateTime.now.strftime("#{db_name}.%Y-%m-%d.%H%M%S.sql") - set :backup_path, "#{backup_dir}/#{backup_name}" - - run "mkdir -p #{backup_dir}" - run "mysqldump -u'#{db_user}' -p'#{db_password}' -h'#{db_host}' --opt --databases '#{db_name}' | gzip --rsyncable > #{backup_path}.gz" + find_and_execute_task "genesis:backup:db" + # Rake::Task["namespace:task"].invoke download "#{backup_path}.gz", "#{backup_name}.gz", :via => :scp - run "rm -f #{backup_path}.gz" + run "rm -f backups/#{backup_path}.gz" system "gzip -d #{backup_name}.gz" system "vagrant up" From 619042d8c804dbdc01bedf1d5a028404ba3dcb48 Mon Sep 17 00:00:00 2001 From: Antonin Januska Date: Thu, 10 Apr 2014 09:35:58 -0500 Subject: [PATCH 3/3] Backup directory name stored in variable --- deployment/lib/sync.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/deployment/lib/sync.rb b/deployment/lib/sync.rb index b01aa08..20226e4 100644 --- a/deployment/lib/sync.rb +++ b/deployment/lib/sync.rb @@ -58,7 +58,7 @@ # Rake::Task["namespace:task"].invoke download "#{backup_path}.gz", "#{backup_name}.gz", :via => :scp - run "rm -f backups/#{backup_path}.gz" + run "rm -f #{local_backup_dir}/#{backup_path}.gz" system "gzip -d #{backup_name}.gz" system "vagrant up" @@ -121,14 +121,16 @@ desc "Downloads remote database into the backups folder" task :db, :roles => :db, :once => true do - set :backup_dir, "#{deploy_to}/backups" + set :backup_dir, "#{deploy_to}" + set :local_backup_dir, "backups" set :backup_name, DateTime.now.strftime("#{db_name}.%Y-%m-%d.%H%M%S.sql") set :backup_path, "#{backup_dir}/#{backup_name}" - run "mkdir -p #{backup_dir}" + run "mkdir -p #{local_backup_dir}" run "mysqldump -u'#{db_user}' -p'#{db_password}' -h'#{db_host}' --opt --databases '#{db_name}' | gzip --rsyncable > #{backup_path}.gz" - download "#{backup_path}.gz", "backups/#{backup_name}.gz", :via => :scp + system "mkdir -p #{local_backup_dir}" + download "#{backup_path}.gz", "#{local_backup_dir}/#{backup_name}.gz", :via => :scp end end end