Skip to content

Instantly share code, notes, and snippets.

@yalab
Created August 27, 2013 07:38
Show Gist options
  • Save yalab/6350720 to your computer and use it in GitHub Desktop.
Save yalab/6350720 to your computer and use it in GitHub Desktop.
Rails backup database task
require 'backup'
namespace :backup do
desc "Backup database."
task :db => ['db:load_config'] do
config = ActiveRecord::Base.configurations[Rails.env]
Backup::Model.new(:rake, 'backup') do
store_with Backup::Storage::Local do |local|
local.keep = 5
local.path = Rails.root.join('backups')
end
database Backup::Database::MySQL do |db|
db.name = config['database']
db.username = config['username'] || 'root'
db.password = config['password'] if config['password']
db.host = config['host'] || 'localhost'
db.port = config['port'] || 3306
db.socket = config['socket'] || "/var/lib/mysql/mysql.sock"
db.additional_options = ["--quick", "--single-transaction"]
end
end.perform!
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment