namespace :load do

task :defaults do
  set :db_roles,            -> { :db }
  set :db_backup_on_deploy, -> { false }
end

end

namespace :db do

desc "seed the database"
task :seed do
  on release_roles fetch(:db_roles) do
    within current_path do
      execute :bundle, :exec, :rake, "db:seed RAILS_ENV=#{fetch(:stage)}"
    end
  end
end

desc 'Dumb database and download yaml file'
task :yaml_dumb do
  # create local backup-dir if not existing
  run_locally do
    execute :mkdir, "-p db/backups" 
  end
  # download yaml version of current DB
  on roles :db do
    within current_path do
      execute :bundle, :exec, :rake, "db:data:dump RAILS_ENV=#{fetch(:stage)}"
      # => download! "#{current_path}/db/data.yml", "db/backups/#{ Time.now.strftime("%y-%m-%d_%H-%M") }_#{fetch(:stage)}_db_data.yml"
      execute "cd #{current_path}/db ; tar -czvf data-dumb.tar.gz data.yml"
      download! "#{current_path}/db/data-dumb.tar.gz", "db/backups/#{ Time.now.strftime("%y-%m-%d_%H-%M") }_#{fetch(:stage)}_db.tar.gz"
    end
  end
end

end

namespace :deploy do

before :starting, :backup_database do
  if fetch(:db_backup_on_deploy)
    invoke "db:yaml_dumb"
  end
end

end