2012-05-17 13 views
11

मेरे पास पोस्टग्रेज़ डेटाबेस पर एक रेल ऐप चल रहा है। मैं डेटाबेस पर चल रहे एक पृष्ठभूमि कार्य कतार स्थापित कर रहा हूं, और मुझे डेटाबेस यूआरएल निर्दिष्ट करने की आवश्यकता है।स्थानीय पोस्टग्रेज़ डेटाबेस के लिए यूआरएल पथ कैसे ढूंढें?

मैंने किए गए विभिन्न क्रमिक प्रयासों और सभी वापसी FATAL: database "database-name" does not exist की अपेक्षा करेंगे।

क्या कोई ऐसा आदेश है जो इस यूआरएल को प्रिंट करेगा?

या, क्या यूआरएल मेरी database.yml तरह सुझावों के लिए यह

development: 
    adapter: postgresql 
    encoding: unicode 
    database: db/database-name 

धन्यवाद लग रहा है, तो तरह दिखना चाहिए।

+0

क्लासिक दृष्टिकोण पोस्टग्रेज़ लॉगफाइल का निरीक्षण करना है, यह देखने के लिए कि फ्रंटेंड ने क्या प्रयास किया था। – wildplasser

+0

और PostgreSQL में डेटाबेस का नाम ** ** क्या है? –

+0

जॉन डी, लेकिन यह घोड़े के रूप में किसी अन्य नाम से घोड़े के रूप में गंध करता है –

उत्तर

11

प्रारूप प्रतीत होता है

postgres://username:[email protected]/database 

ताकि आप उपयोग करने की आवश्यकता है या तो

postgres:///db/database-name 

या आप अपने डेटाबेस नाम पर एक / और (जाहिरा तौर पर) postgres डेटाबेस नाम में / स्वीकार करेंगे है,

postgres:///db%2Fdatabase-name 

वें बाहर निकलने के लिए स्वतंत्र महसूस करें ई db/ आपके डेटाबेस नाम का हिस्सा - यह केवल SQLite जैसे डेटाबेस के लिए जरूरी है जो डीबी को स्थानीय फ़ाइल में संग्रहीत करता है और फ़ाइल नाम की आवश्यकता होती है।

+0

डीबी पथ समस्या थी। मैं इस के आसपास एक रास्ता की उम्मीद कर रहा था, क्योंकि मेरे पास पहले से डेटाबेस में डेटा था। अंत में मैं गिरा दिया, नाम में डीबी के बिना बनाया, और एक बैकअप आयात किया। अच्छी तरह से काम। धन्यवाद! –

0

यह सुनिश्चित नहीं है कि आप डेटाबेस तक पहुंचने का प्रयास कैसे कर रहे हैं, लेकिन यदि आप एक स्क्रिप्ट बनाने का प्रयास कर रहे हैं जो रेल के समान डेटाबेस का उपयोग करता है लेकिन अलग से चलाया जाता है, तो रेल में चलने वाली एक स्क्रिप्ट का उपयोग करने पर विचार करें। यूनिक्स/लिनक्स में, आप इस लाइन को जोड़ने अगर:

chmod +x myscript 

तो आप बस इसे

./myscript 
साथ चला सकते हैं: अपनी स्क्रिप्ट की पहली पंक्ति

#! script/rails runner 

और फिर इसे निष्पादन के साथ बनाने के

और यह आपके नियंत्रक की तरह ही आपके मॉडल वर्गों का उपयोग कर सकता है और रेल में कोड देख सकता है। फिर डेटाबेस को मैन्युअल रूप से एक्सेस करने की कोई आवश्यकता नहीं है।

+0

धन्यवाद माइकल, नहीं, मुझे बस डेटाबेस के कनेक्शन पथ की आवश्यकता है। मैं अपने ऐप https://github.com/ryandotsmith/queue_classic में queue_classic को शामिल करने का प्रयास कर रहा हूं। –

+0

जिस समस्या का सामना कर रहा हूं वह मेरा डेटाबेस है .yml पथ 'डीबी/डेटाबेस-नाम' को परिभाषित करता है लेकिन त्रुटि 'FATAL: डेटाबेस "dbdatabase-name" मौजूद नहीं है' - डीबी के बाद कोई स्लैश विभाजक नोट करें। इसलिए मैं पूछताछ करने और काम करने के लिए एक रास्ता तलाश रहा हूं कि रेल किस मार्ग का उपयोग कर रहा है। कोई विचार? –

संबंधित मुद्दे