Skip to content

Instantly share code, notes, and snippets.

@aderyabin
Created January 26, 2011 16:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aderyabin/796919 to your computer and use it in GitHub Desktop.
Save aderyabin/796919 to your computer and use it in GitHub Desktop.
rake db:dump
namespace :db do
desc "Backup database"
task :backup => :environment do
db_config = ActiveRecord::Base.configurations[Rails.env]
backup_path = "db/backups"
Dir.mkdir("#{Rails.root}/#{backup_path}") unless Dir.exist?("#{Rails.root}/#{backup_path}")
datestamp = Time.now.strftime("%Y%m%d%H%M%S")
file_name = "#{RAILS_ENV}_#{db_config['database']}_#{datestamp}.sql.gz"
backup_file = File.join(backup_path, file_name)
sh "mysqldump -u #{db_config['username']} -p#{db_config['password']} --single-transaction --flush-logs --add-drop-table --add-locks --create-options --disable-keys --extended-insert --quick #{db_config['database']} | gzip -c > #{backup_file}"
puts "Created backup: #{file_name}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment