mysql - 是否有用于备份数据库中数据的 rake 任务?

标签 mysql ruby-on-rails ruby database rake

是否有用于备份数据库中数据的 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/

相关文章:

ruby-on-rails - 您使用 Rails 进行版本控制和部署的工作流程是什么?

ruby - 如何在 Sinatra 中创建函数?

php - 向用户展示照片的最佳方式

c# - MySqlCommand.ExecuteReader() 在初始化时抛出 System.Format 异常

php - MySQL/PHP : How to get columns and associated data

ruby-on-rails - 加速 sphinx ?

mysql - 我们应该在数据库中做多少工作?

javascript - 具有 'remote: true' 的表单即使使用重定向也会返回 200 响应

ruby - Timeout::Error 不是在 Ruby 中拯救

ruby - 有没有办法在 Ruby 中解码 q 编码的字符串?