रेल डेटाबेस का प्रबंधन कैसे करें


82

रेल डेटाबेस को संभालने का सबसे अच्छा तरीका क्या है। यदि परियोजना में कई लोग काम कर रहे हैं और डेटाबेस स्थान अलग हैं (विशेष रूप से सॉकेट)।


2
स्पष्टता: मैं कैपिस्ट्रानो के साथ काम करना चाहता हूं, जो कि svn से जांच करता है, इसलिए मुझे नहीं लगता कि कार्यों को अनदेखा करना।
फ़िले

1
मैंने Capistrano मामले के लिए दो और कदम जोड़े।
जेम्स ए। रोसेन

जवाबों:


160

सबसे पहले, 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"

दूसरा, .yml संस्करण को अनदेखा करें।

यदि आप 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

चौथा, एक Capistrano की तैनाती का काम निर्धारित करें:

# 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

8
यह प्रथागत है (हालांकि किसी भी तरह से आवश्यक नहीं) आपको सबसे अधिक उपयोगी उत्तर को "स्वीकार" करने के लिए। मुझे लगता है कि आपको अपनी पहली स्वीकार के लिए भी एक बैज मिलता है।
जेम्स ए। रोसेन

3
मेरे बुरे - ने इसे वोट दिया लेकिन चेक नहीं देखा। किया और धन्यवाद!
फ़िले

मुझे 'परिनियोजन: अद्यतन_कोड', 'परिनियोजन: सिम्लिंक_डब' के बाद 'परिनियोजन: संपत्तियां: पूर्वसर्ग', 'परिनियोजन: सिमलिंक_डब' के बाद बदलना पड़ा।
joshua.paling

पांचवें चरण को छोड़कर, सब कुछ काम करता है। यह कहते हैं कि ऐसी कोई निर्देशिका नहीं है, लेकिन यह वहाँ है।
सेबेस्टियलोनो

बस एक महत्वपूर्ण नोट, मैं cat >> .gitignoreइसके बजाय का उपयोग करने का सुझाव देता हूं । चूँकि आप अपनी मौजूदा फ़ाइल को अन्यथा उड़ा देंगे ...
sijpkes




0

उपर्युक्त उत्तरों के अलावा, मैंने "जहाँ आपके डेटाबेस .yml, dude?" के समान एक रेक कार्य लिखा है, लेकिन किसी भी कॉन्फ़िगरेशन फ़ाइल के टेम्पलेट उदाहरणों को रखने की अनुमति देता है। इसे देखें : https://github.com/Velid/exemplify

अलग-अलग उत्पादन विन्यास लिखने और उन्हें कैपिस्ट्रानो के माध्यम से जोड़ने के विकल्प के रूप में, मैं आपकी क्षमता के लिए पर्यावरण चर का उपयोग करने का भी सुझाव दूंगा:

password: <%= ENV['PROD_DATABASE_PASSWORD'] %>

इसके लिए बहुत सारे उपयोगी उपकरण और तरीके उपलब्ध हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.