Skip to content

Instantly share code, notes, and snippets.

@Tolia
Last active August 29, 2015 14:11
Show Gist options
  • Save Tolia/8963bf4361f717933d80 to your computer and use it in GitHub Desktop.
Save Tolia/8963bf4361f717933d80 to your computer and use it in GitHub Desktop.
syncing database content using mina
RYAML = <<-BASH
function ryaml {
ruby -ryaml -e 'puts ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[key] }' "$@"
};
BASH
namespace :sync do
task :db do
isolate do
queue RYAML
queue "USERNAME=$(ryaml ./shared/config/database.yml #{rails_env} username)"
queue "PASSWORD=$(ryaml ./shared/config/database.yml #{rails_env} password)"
queue "DATABASE=$(ryaml ./shared/config/database.yml #{rails_env} database)"
queue "PGPASSWORD=$PASSWORD pg_dump -U $USERNAME $DATABASE -c -f dump.sql"
queue "gzip -f dump.sql"
mina_cleanup!
end
%x[scp #{user}@#{domain}:#{deploy_to}/dump.sql.gz .]
%x[gunzip -f dump.sql.gz]
%x[#{RYAML} psql -d $(ryaml config/database.yml development database) -f dump.sql]
%x[rm dump.sql]
end
end
@Tolia
Copy link
Author

Tolia commented Dec 9, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment