是否有用于备份数据库中数据的 rake 任务?
我已经备份了我的架构,但我想备份数据。这是一个小型的 MySQL 数据库。
最佳答案
以下脚本是从 eycap 中提取的简化版本, 具体来自 this file .
set :dbuser "user"
set :dbhost "host"
set :database "db"
namespace :db do
desc "Get the database password from user"
task :get_password do
set(:dbpass) do
Capistrano::CLI.ui.ask "Enter mysql password: "
end
end
task :backup_name, :only => { :primary => true } do
now = Time.now
run "mkdir -p #{shared_path}/db_backups"
backup_time = [now.year,now.month,now.day,now.hour,now.min,now.sec].join('-')
set :backup_file, "#{shared_path}/db_backups/#{database}-snapshot-#{backup_time}.sql"
end
desc "Dump database to backup file"
task :dump, :roles => :db, :only => {:primary => true} do
backup_name
run "mysqldump --add-drop-table -u #{dbuser} -h #{dbhost} -p#{dbpass} #{database} | bzip2 -c > #{backup_file}.bz2"
end
end
编辑:是的,我想我错过了您正在寻找 rake 任务而不是 capistrano 任务的要点,但我手头没有 rake 任务,抱歉。
关于mysql - 是否有用于备份数据库中数据的 rake 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27442/