# load production data, still needs some polish # based on code from http://push.cx/2007/capistrano-task-to-load-production-data # cap 2.0 compatible # exec is being weird, had to end w/ a syscall :\ any ideas? desc "Load production data into development database" task :load_production_data, :roles => :db, :only => { :primary => true } do require 'yaml' ['config/database.yml'].each do |file| database = YAML::load_file(file) filename = "dump.#{Time.now.strftime '%Y-%m-%d_%H:%M:%S'}.sql.gz" # on_rollback { delete "/tmp/#{filename}" } # run "mysqldump -u #{database['production']['username']} --password=#{database['production']['password']} #{database['production']['database']} > /tmp/#{filename}" do |channel, stream, data| run "mysqldump -h #{database['production']['host']} -u #{database['production']['username']} --password=#{database['production']['password']} #{database['production']['database']} | gzip > /tmp/#{filename}" do |channel, stream, data| puts data end get "/tmp/#{filename}", filename # exec "/tmp/#{filename}" password = database['development']['password'].nil? ? '' : "--password=#{database['development']['password']}" # FIXME pass shows up in process list, do not use in shared hosting!!! Use a .my.cnf instead # FIXME exec and run w/ localhost as host not working :\ # exec "mysql -u #{database['development']['username']} #{password} #{database['development']['database']} < #{filename}; rm -f #{filename}" `gunzip -c #{filename} | mysql -u #{database['development']['username']} #{password} #{database['development']['database']} && rm -f gunzip #{filename}` end end
Never been to CodeSnippets before?
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 (or not, you can keep them private!)
Capistrano task to load production data (See related posts)
You need to create an account or log in to post comments to this site.
Related Posts
» YAML parameters, session, et... in ruby rails test functional yaml parameter session
» Typo under lighttpd in lighttpd ruby rails typo ruby-fcgi
» killing your own dispatch.fcgis in awk lighttpd ruby rails
» Howto Send Email When Rails... in email ruby rails exception error
» Handle Maintenance Tasks for... in ruby rails maintenance
» Typo current error in ruby rails typo error textdrive setup
Snippets (source code soon to be available) developed by Peter Cooper and powered by Ruby On Rails