Created
June 20, 2010 17:32
-
-
Save camelpunch/445965 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'open3' | |
| namespace :db do | |
| desc "Import production database and rewrite hostname" | |
| task :import_production do | |
| remote_hostname = 'blog.andrewbruce.net' | |
| local_hostname = 'blog.andrewbruce.local' | |
| webapp_username = 'joebloggs' | |
| webapp_hostname = 'my-web-app-host.name' | |
| database_hostname = 'some.database.host.name' | |
| database_username = 'dbuser' | |
| database_password = 'dbpass' | |
| database_name = 'dbname' | |
| local_database_username = 'root' | |
| local_database_name = 'localdbname' | |
| # get remote dump of database | |
| dump = `ssh #{webapp_username}@#{webapp_hostname} \ | |
| 'mysqldump -h #{database_hostname} -u #{database_username} --password=#{database_password} #{database_name}'` | |
| # replace all instances of the remote hostname with the local hostname | |
| dump.gsub!(remote_hostname, local_hostname) | |
| # write modified dump to local mysql database | |
| stdin, stdout, stderr = Open3.popen3("mysql -u #{local_database_username} #{local_database_name}") | |
| stdin.puts dump | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment