2012-07-08 20 views
7

का अनुवाद नहीं कर सका मैं रूबी (रेल नहीं) का उपयोग कर रहा हूं और PostgreSQL डेटाबेस को जोड़ रहा हूं। मैं हेरोकू पर स्थापित होने की कोशिश कर रहा हूं, लेकिन मुझे एप्लिकेशन शुरू करने में समस्याएं आ रही हैं। एप्लिकेशन को स्थानीय रूप से चलाना ठीक काम करता है।रूबी का उपयोग करके हेरोकू पर पोस्टग्रेएसक्यूएल डेटाबेस से कनेक्ट नहीं हो सकता - होस्ट नाम

मेरे स्थानीय .env की तरह दिखता है:

postgres://DATABASE_URL=localhost 

और रूबी के लिए डेटाबेस लग रहा है कनेक्ट करने के लिए कनेक्ट की तरह:

@@db = PGconn.open(:hostaddr => ENV['DATABASE_URL'], :dbname => '(dbname)', :password => '(password)') 

जब मैं उस लाइन पर ऐप्लिकेशन क्रैश Heroku करने के लिए धक्का है, और इस त्रुटि को लॉग में लिखते हैं:

could not translate host name "postgres://(my heroku db address)" to address: Name or service not known (PG::Error) 

डेटाबेस पतासे मेल खाता है मेरे heroku:config में। मैं एक साझा डेटाबेस का उपयोग कर रहा हूँ।

मैंने :host => ENV['DATABASE_URL'] (:hostaddr के विपरीत) का उपयोग करने की कोशिश की लेकिन इसका एक ही परिणाम था। मुझे लगता है कि कुछ आसान है जो मुझे याद आ रही है लेकिन मेरे पास कोई अच्छा विचार नहीं है।

+0

मुझे उसकेोकू डीबी पते को पोस्ट करने में संकोच नहीं है क्योंकि इसमें उपयोगकर्ता नाम और पासवर्ड है। यह प्रारूप पोस्टग्रेज़ में है: // (foo) @ (bar) .compute-1.amazonaws.com/ddnhsdgpcy –

उत्तर

4

Heroku के Devcenter यह अब और शामिल करने के लिए प्रकट नहीं होता है, इसलिए यहां पर मैन्युअल विभाजित करना है:

db_parts = ENV['DATABASE_URL'].split(/\/|:|@/) 
    username = db_parts[3] 
    password = db_parts[4] 
    host = db_parts[5] 
    db = db_parts[7] 
    conn = PGconn.open(:host => host, :dbname => db, :user=> username, :password=> password) 

सौजन्य Grio

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