DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world
Dump Postgres Production Data Into Development Database
When bug requests come in, its great to grab a copy of the current production (or system test env) data and sync it into your development database.
Here's a capistrano recipe for postgresql:
desc "Dumps target database into development db"
task :sync_db do
env = ENV['RAILS_ENV'] || ENV['DB'] || 'production'
file = "#{application}.sql.bz2"
remote_file = "#{shared}/log/#{file}"
run "pg_dump --clean --no-owner --no-privileges -U#{db_user} -h#{db_host} #{db_name}_#{env} | bzip2 > #{file}" do |ch, stream, out|
ch.send_data "#{db_password}\n" if out =~ /^Password:/
puts out
end
puts rsync = "rsync #{user}@#{domain}:#{file} tmp"
`#{rsync}`
puts depackage = "bzcat tmp/#{file} | psql #{local_db_dev}"
`#{depackage}`
end




