पुराना सवाल लेकिन यह ऐसा करने के तरीके को देख में मेरी पहली बंद हो जाता है में से एक था तो मैं इस किसी और मदद मिल सकती है समझ। मैं आमतौर पर होम निर्देशिका में .my.cnf फ़ाइलों है। इसलिए 'parseconfig' मणि और मेरे डेटाबेस.आईएमएल कॉन्फ़िगरेशन फ़ाइल में कुछ ईआरबी सिंटैक्स का मतलब है कि मुझे गतिशील फ़ाइल मिली है कि मैं स्रोत नियंत्रण में जांच करने और तैनाती को सरल बनाने के लिए भी अच्छा महसूस कर सकता हूं (मेरे मामले में)। सामान्य सॉकेट की सूची भी ध्यान दें, इससे मेरे ऐप को विभिन्न ऑपरेटिंग सिस्टम में स्थानांतरित करना आसान हो जाता है, जिसमें एक अलग यूनिक्स सॉकेट पथ हो सकता है।
<%
require 'parseconfig'
c=ParseConfig.new('../../.my.cnf') %>
mysqlevn: &mysql
adapter: mysql
username: <%= c.params['client']['user'] %>
password: <%= c.params['client']['password'] %>
host: localhost
socket: <%= [
'/var/run/mysqld/mysqld.sock',
'/var/lib/mysql/mysql.sock',
'/tmp/mysqld.sock',
'/tmp/mysql.sock'].detect { |socket| File.exist?(socket) } %>
production:
database: app_production
<<: *mysql
development:
database: app_development
<<: *mysql
# Do not set this db to the same as development or production.
test:
database: app_test
<<: *mysql
रेफरी:
=> {:adapter=>ADAPTER_NAME, :host=>HOST, :port=>PORT,
:database=>DB, :pool=>POOL, :username=>USERNAME,
:password=>PASSWORD}
tpett
के रूप में उनकी टिप्पणी में कहा था:: http://effectif.com/articles/database-yml-should-be-checked-in
हाल ही में रेल में, आपको कॉन्फ़िगरेशन बनाने की आवश्यकता नहीं है, आप इसे रेल 3.0.0 के लिए 'Rails.configuration' –
के माध्यम से प्राप्त कर सकते हैं, 'yaml' और YAML :: load (IO.read (" config/database.yml ")) ठीक काम करता है! –
यदि उनमें से कुछ में शून्य मान हैं (मेरे मामले में: होस्ट, उपयोगकर्ता नाम और पासवर्ड), रेल का उपयोग करने वाले डिफ़ॉल्ट क्या हैं? – Dennis