Commit 2e1cb4ea

mo k <mo@mokhan.ca>
2012-09-23 03:28:52
rake db:restore will restore the prod db to the local database.
1 parent 6864515
Changed files (3)
config/deploy.rb
@@ -28,6 +28,5 @@ after 'deploy:update_code', 'deploy:symlink_db'
 namespace :deploy do
   task :symlink_db, :roles => :app do
     run "ln -nfs #{release_path}/config/database.production.yml.example #{release_path}/config/database.yml"
-    #run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml"
   end
 end
lib/tasks/database.rake
@@ -1,8 +1,16 @@
-task :restore do
-  # 1. backup prod database
-  sh "cap production backup_db"
-  # 2. copy backup to staging
-  sh "rm -f latest && ln -s db/backups/`ls -rt db/backups/ | tail -n1` latest"
-  # 3. restore backup on staging
-  sh "cap staging restore_db"
+namespace :db do
+  task :restore do
+    dumpfile = "latest"
+    config = Rails.configuration.database_configuration
+    destination_db = config[Rails.env]["database"]
+    puts "restoring to #{destination_db}"
+    sh "psql #{destination_db} < #{dumpfile}"
+  end
+  task :backup do
+    sh "cap production backup_db"
+    sh "rm -f latest && ln -s db/backups/`ls -rt db/backups/ | tail -n1` latest"
+  end
+  task :restore_to_staging => :backup do
+    sh "cap staging restore_db"
+  end
 end
lib/tasks/deployment.rake
@@ -1,7 +1,6 @@
 namespace :deploy do
   desc "deploy to staging server"
   task :staging => :spec do
-    #sh "cap staging deploy"
     sh "cap staging deploy:migrations"
     sh "curl http://staging.cakeside.com/ > /dev/null"
   end