रेल डेटाबेस को संभालने का सबसे अच्छा तरीका क्या है। यदि परियोजना में कई लोग काम कर रहे हैं और डेटाबेस स्थान अलग हैं (विशेष रूप से सॉकेट)।
रेल डेटाबेस को संभालने का सबसे अच्छा तरीका क्या है। यदि परियोजना में कई लोग काम कर रहे हैं और डेटाबेस स्थान अलग हैं (विशेष रूप से सॉकेट)।
जवाबों:
database.yml
एक टेम्पलेट फ़ाइल पर जाएँ।यदि आप Git पर हैं:
git mv config/database.yml config/database.yml.example
git commit -m "moved database.yml to an example file"
या, यदि आप तोड़फोड़ पर हैं:
svn move config/database.yml config/database.yml.example
svn ci -m "moved database.yml to an example file"
यदि आप Git पर हैं:
cat > .gitignore
config/database.yml
git add .gitignore
git commit -m "ignored database.yml"
यदि आप तोड़फोड़ पर हैं:
svn propset svn:ignore config "database.yml"
script/plugin install git://github.com/technicalpickles/wheres-your-database-yml-dude
यदि कोई रेक कार्य चलाया नहीं जाता है, तो वह प्लगइन डेवलपर्स को सचेत करता है, यदि उन्होंने अपना स्थानीय संस्करण नहीं बनाया है config/database.yml
।
# in RAILS_ROOT/config/deploy.rb:
after 'deploy:update_code', 'deploy:symlink_db'
namespace :deploy do
desc "Symlinks the database.yml"
task :symlink_db, :roles => :app do
run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml"
end
end
scp config/database.yml user@my_server.com:/path_to_rails_app/shared/config/database.yml
cat >> .gitignore
इसके बजाय का उपयोग करने का सुझाव देता हूं । चूँकि आप अपनी मौजूदा फ़ाइल को अन्यथा उड़ा देंगे ...
Capistrano 3 में, नए कार्य को जोड़ने के बजाय, आप बस कर सकते हैं:
set :linked_files, %w{config/database.yml}
आप उस फाइल को वर्जन होने से रोकने के लिए svn: प्रॉपर्टी को नजरअंदाज कर सकते हैं।
फिर भी एक और तरीका जो तैनाती के दौरान क्रेडेंशियल्स के लिए संकेत करने के लिए कैपिस्ट्रानो एक ईआरबी का उपयोग करता है।
http://www.simonecarletti.com/blog/2009/06/capistrano-and-database-yml/
उपर्युक्त उत्तरों के अलावा, मैंने "जहाँ आपके डेटाबेस .yml, dude?" के समान एक रेक कार्य लिखा है, लेकिन किसी भी कॉन्फ़िगरेशन फ़ाइल के टेम्पलेट उदाहरणों को रखने की अनुमति देता है। इसे देखें : https://github.com/Velid/exemplify
अलग-अलग उत्पादन विन्यास लिखने और उन्हें कैपिस्ट्रानो के माध्यम से जोड़ने के विकल्प के रूप में, मैं आपकी क्षमता के लिए पर्यावरण चर का उपयोग करने का भी सुझाव दूंगा:
password: <%= ENV['PROD_DATABASE_PASSWORD'] %>