role :libs, "root@webserver" set :root_path, "/var/www/vhosts/foodcoops.net/railsapps/" set :backup_path, "/var/www/vhosts/foodcoops.net/railsapps/backup/" set :foodsoft_path, "/var/www/vhosts/foodcoops.net/railsapps/foodsoft/" set :sandbox, {:subdomain => "sandbox"} set :sharedLists, { :subdomain => "/var/www/vhosts/foodcoops.net/railsapps/sharedLists/", :db_user => "fcnet_shared", :db_name => "fcnet_shared", :db_pwd => "dhj450lw" } set :foodcoops, [ { :subdomain => "sandbox", :db_user => "fs2_sandbox", :db_name => "fs2_sandbox", :db_pwd => "gruenbarsch"}, { :subdomain => "fcschinke09", :db_user => "fs2_fcschinke09", :db_name => "fs2_fcschinke09", :db_pwd => "gruenbarsch"}, { :subdomain => "fc-fruchtzwerge", :db_user => "fs2_fruchtzwerge", :db_name => "fs2_fruchtzwerge", :db_pwd => "fruchtblub234"}, { :subdomain => "fcnova", :db_user => "fs2_fcnova", :db_name => "fs2_fcnova", :db_pwd => "suppenkueche2"}, { :subdomain => "mosa", :db_user => "fs2_mosa", :db_name => "fs2_mosa", :db_pwd => "skh489ndp"}, { :subdomain => "mainz", :db_user => "fs2_mainz", :db_name => "fs2_mainz", :db_pwd => "sdfh2987s2m"}, { :subdomain => "bioparadeis", :db_user => "fs2_bioparadeis", :db_name => "fs2_bioparadeis", :db_pwd => "sdfh4872bs00"}, { :subdomain => "fcduncker", :db_user => "fs2_fcduncker", :db_name => "fs2_fcduncker", :db_pwd => "sdf89gh3"}, { :subdomain => "leipzig", :db_user => "fs2_leipzig", :db_name => "fs2_leipzig", :db_pwd => "dfh2098q1hja"}, { :subdomain => "fcfutterneid", :db_user => "fs2_fcfutterneid", :db_name => "fs2_fcfutterneid", :db_pwd => "lreiugh277ah2l"} ] desc "backup code and databases" task :backup do run "tar cfz #{backup_path}foodsoft.tar.gz #{foodsoft_path}" #code-backup for fc in foodcoops # backup db and compress run "mysqldump -u #{fc[:db_user]} --password=#{fc[:db_pwd]} #{fc[:db_name]} | gzip > #{backup_path + fc[:subdomain]}/#{fc[:subdomain]}_#{Time.now.strftime('%Y-%m-%d_%H:%M')}.sql.gz" end end desc "backup code and databases, updates foodsoft-code, runs migrations for every foodcoop-db, restart passenger" task :update_and_migrate do run "tar cfz #{backup_path}foodsoft.tar.gz #{foodsoft_path}" #code-backup run "svn up #{foodsoft_path}" # code-update for fc in foodcoops # backup db and compress run "mysqldump -u #{fc[:db_user]} --password=#{fc[:db_pwd]} #{fc[:db_name]} | gzip > #{backup_path + fc[:subdomain]}/#{fc[:subdomain]}_#{Time.now.strftime('%Y-%m-%d_%H:%M')}.sql.gz" # migrations run "cd #{foodsoft_path} && rake db:migrate RAILS_ENV=#{fc[:subdomain]}" end run "touch #{foodsoft_path}tmp/restart.txt" run "chown -R www-data:www-data #{foodsoft_path}app" end desc "backup and update code, restart passenger" task :update do #run "tar cfz #{backup_path}foodsoft.tar.gz #{foodsoft_path}" #code-backup run "svn up #{foodsoft_path}" # code-update for fc in foodcoops # backup db and compress run "mysqldump -u #{fc[:db_user]} --password=#{fc[:db_pwd]} #{fc[:db_name]} | gzip > #{backup_path + fc[:subdomain]}/#{fc[:subdomain]}_#{Time.now.strftime('%Y-%m-%d_%H:%M')}.sql.gz" end run "touch #{foodsoft_path}tmp/restart.txt" run "chown -R www-data:www-data #{foodsoft_path}app" end desc "only update, no backups -> use for small! fixes" task :only_update do run "svn up #{foodsoft_path}" # code-update run "touch #{foodsoft_path}tmp/restart.txt" run "chown -R www-data:www-data #{foodsoft_path}app" end desc "sharedLists: backup, update, migration, restart server" task :update_sharedLists do end desc "create fcschinke09 database dump, download and fills up the development db" task :dump do run "mysqldump -u #{foodcoops[1][:db_user]} --password=#{foodcoops[1][:db_pwd]} #{foodcoops[1][:db_name]} | gzip > #{backup_path + foodcoops[1][:subdomain]}/fcschinke09_tmp.sql.gz" puts "download mysqldump" puts `scp server:"#{backup_path + foodcoops[1][:subdomain]}"/fcschinke09_tmp.sql.gz ../` puts "load dump into database" puts `gunzip ../fcschinke09_tmp.sql.gz` puts `mysql -u root foodsoft_development < ../fcschinke09_tmp.sql` end desc "dump databases to backup-dir" task :dump_to_backup do for fc in foodcoops run "mysqldump -u #{fc[:db_user]} --password=#{fc[:db_pwd]} #{fc[:db_name]} | gzip > #{backup_path}/#{fc[:subdomain]}.sql.gz" end end desc "load last mysql-dumps in backup-path" task :load_dumps do for fc in foodcoops run "gunzip -c #{backup_path}/#{fc[:subdomain]}.sql.gz | mysql -u #{fc[:db_user]} --password=#{fc[:db_pwd]} #{fc[:db_name]}" end end