如何在ruby中使用gem时使用mysql数据库备份?

时间:2013-08-22 06:38:28

标签: ruby-on-rails ruby-on-rails-3

我正在使用随时 gem进行mysql数据库备份,我使用了cron job但是当我使用system"mysqldump -u root -ppassword app_production > /output_path/app_production.sql"运行shell命令时,这只会在运行后运行一次终端上的whenever --update-crontab store命令。

我的schedule.rb是:

set :output, "/output_path/app_production.sql"
set :environment, 'production'

every 59.minute do
  system"mysqldump -u root -ppassword app_production > /path/app_production.sql"
  # runner "MyModel.some_method"
  # rake "some:great:rake:task"
end

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

可能需要检查一些事项以确保它正在运行。您确定app_production.sql包含正确的转储吗?或者是没有任何内容创建的文件?另请尝试使用command代替system。我认为command是一个when命令,其中system是ruby。

every 59.minutes do
  command "mysqldump -u root -ppassword app_production > /path/app_production.sql"
  # runner "MyModel.some_method"
  # rake "some:great:rake:task"
end

更新:

您还可以查看backup gem以进行备份。它有很多功能,包括通知,所以我建议你看一下。

答案 1 :(得分:0)

我已经遇到了这个问题。解决方案是:

set :output, "/output_path/app_production.sql"
set :environment, 'production'
every 59.minute do
   command "mysqldump -u root -ppassword app_production"
   # runner "MyModel.some_method"
   # rake "some:great:rake:task"
end

运行命令后,现在看看输出文件

我希望它可以帮助你:)