मैं meskyanichi के backup gem का उपयोग कर रहा हूँ। बड़े पैमाने पर यह मुझे करता है जो मुझे चाहिए, लेकिन मुझे एकाधिक बैकअप (उदाहरण के लिए, प्रति घंटा, दैनिक, साप्ताहिक) होना चाहिए। कॉन्फ़िगरेशन ज्यादातर समान होते हैं लेकिन कुछ अंतर होते हैं, इसलिए मुझे एकाधिक कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता होती है। मुझे कॉन्फ़िगरेशन के सामान्य बिट्स को प्रबंधित करने के लिए एक सौहार्दपूर्ण तरीका खोजने में परेशानी हो रही है (यानी, सामान्य भागों को दोहराना नहीं)।रूबी बैकअप मणि - साझा कॉन्फ़िगरेशन?
कॉन्फ़िगरेशन फ़ाइलें बहुत से ब्लॉक संरचनाओं का उपयोग करती हैं, और जो मैं बता सकता हूं, प्रत्येक बैकअप को एक अलग कॉन्फ़िगरेशन फ़ाइल (जैसे कॉन्फ़िगर/बैकअप/hourly.rb, config/backup/daily.rb, आदि) की आवश्यकता होती है। । एक ठेठ कॉन्फ़िग फ़ाइल इस तरह दिखता है:
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
निष्पादित किया जाता है।
एक आम config को सक्षम करने के मेरी पहली लूट तरीकों कि मैं ब्लॉकों से कह सकते हैं परिभाषित करने के लिए किया गया था:
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
config कोड के साथ एक फ़ाइल और मॉडल परिभाषा ब्लॉक में यह ing बनाने की कोशिश की:
# 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
नहीं है काम करता है। सी/सी ++ के #include
काम करने के तरीके के साथ कुछ और अधिक (यानी, सामग्री को अंधाधुंध रूप से चिपकाकर जो भी गुंजाइश कहा जाता है) काम कर सकता है।
कोई विचार?
शानदार विचार! धन्यवाद! – dantswain