我使用meskyanichi的backup gem。总的来说,它可以满足我的需求,但我需要有多个备份(例如,每小时,每天,每周)。配置大多相同,但有一些差异,所以我需要有多个配置文件。我无法找到一种理智的方式来管理配置的常见部分(即不重复常见部分)。每个备份都需要有一个单独的配置文件(例如config/backup/hourly.rb,config/backup/daily.rb等),这些配置文件使用了很多块结构,并且从我所知道的情况来看, 。一个典型的配置文件看起来是这样的:Ruby备份宝石 - 共享配置?
Backup::Model.new(:my_backup, 'My Backup') do
database MySQL do |db|
db.name = "my_database"
db.username = "foo"
db.password = "bar"
# etc
end
# similar for other config options
end
则备份将被执行一拉bundle exec backup perform -t my_backup -c path/to/config.rb
。
我在启用常见的配置第一赃物是确定,我可以从模块调用的方法:
def my_db_config db
db.name = "my_database"
# etc
end
Backup::Model.new(:my_backup, 'My Backup') do
database MySQL do |db|
my_db_config db
end
#etc
end
但这种失败的undefined method 'my_db_config' for #<Backup::Database::MySQL:0x10155adf0>
。
我的目的是要得到这个工作,然后拆分常见的配置功能合并到其他文件,我可以在我的每一个配置文件require
。我也试图创建一个与配置代码的文件和require
将其投入模型定义块:
# common.rb
database MySQL do |db|
db.name = "my_database"
#etc
end
# config.rb
Backup::Model.new(:my_backup, 'My Backup') do
require "common.rb" # with the right path, etc
end
这也不起作用,以及后来的研究我发现,这只是没有办法的办法是require
作品。一些更符合那个C/C++的#include
作品(即盲目地粘贴内容到什么范围内,可以从所谓的)可能的工作方式。
任何想法?
好主意!谢谢! – dantswain