2013-07-14 14 views
8

मैंने हाल ही में हरोकू पर एक Django ऐप डाला। मुख पृष्ठ का ठीक लग रहा है, लेकिन जब मैं एक पृष्ठ शामिल होता है कि एक प्रश्न (जैसे p = Photo.objects.get(title=title)) बनाने के लिए जाने की कोशिश, मैं इस त्रुटि मिलती है:ऑपरेशनल एरर सर्वर से कनेक्ट नहीं हो सका

could not connect to server: Connection refused 
    Is the server running on host "localhost" and accepting 
    TCP/IP connections on port 5432? 
this answer साथ

अनुसार, मैं $ heroku pg:promote HEROKU_POSTGRESQL_GREEN_URL

तब किया मेरी settings.py में:

DATABASES = {'default': dj_database_url.config(default=os.environ['DATABASE_URL'])}

फिर भी एक ही त्रुटि मिली, तो मैं (this answer पता चलता है के रूप में) इस के परिणामों को देखने का प्रयास किया:

$ heroku run python manage.py shell 

>>> from django.conf import settings 

>>> print settings.DATABASES['default'] 

{'TIME_ZONE': 'UTC', 'TEST_MIRROR': None, 'NAME': 'snorthway', 'OPTIONS': {}, 
'HOST': 'localhost', 'TEST_NAME': None, 'PASSWORD': '******', 'ENGINE': 
'django.db.backends.postgresql_psycopg2', 'PORT': '', 'USER': 'snorthway', 
'TEST_COLLATION': None, 'TEST_CHARSET': None} 

किस बिंदु पर मुझे एहसास हुआ कि मुझे नहीं पता कि मुझे इसमें क्या खोजना चाहिए। मुझे अभी भी समझ में नहीं आता कि त्रुटि का मतलब क्या है, इसलिए मुझे यकीन नहीं है कि इसे डिबग करने के बारे में कैसे जाना है।

+0

आप खोल से डेटाबेस क्वेरी करने के लिए सक्षम हैं? अपने मॉडल आयात करने और फिर पी = Photo.objects.get (शीर्षक = शीर्षक) चलाना पसंद है? –

+0

नहीं, जब मैं मॉडल आयात करता हूं और 'प्रिंट Photo.objects.all() 'जैसे कुछ चलाता हूं तो मुझे वही त्रुटि मिलती है। – snorthway

+0

जब आप 'heroku config' चलाते हैं, तो क्या आप कॉन्फ़िगर वर्र्स की सूची में' DATABASE_URL' देखते हैं? इसके अलावा, आपको 'डिफ़ॉल्ट =' भाग की आवश्यकता नहीं होनी चाहिए; मुझे लगता है कि यह सिर्फ 'dj_database_url.config (os.environ [' DATABASE_URL '] होना चाहिए) ' – jacobian

उत्तर

2

आपने सेटिंग्स.d में अपने django डेटाबेस को सही तरीके से कॉन्फ़िगर नहीं किया है। ऐसा लगता है कि आपका डेटाबेस लोकलहोस्ट पर है।

DATABASE_URL

वहाँ एक बहुत ही शांत अजगर पैकेज यहाँ है:

df3-64-304-50-250.compute-1.amazonaws.com

Heroku एक वातावरण चर कहा के माध्यम से एक विशेष डेटाबेस यूआरएल को उजागर करता है: लगता है कि आपका Heroku postgres डेटाबेस है, इसलिए आपके मेजबान की तरह कुछ किया जाना चाहिए जिसे dj_database_url कहा जाता है: https://github.com/kennethreitz/dj-database-url यह उस पर्यावरण परिवर्तनीय को परिवर्तित करता है जो django की अपेक्षा करता है।

आप के साथ स्थापित कर सकते हैं: मेरी settings.py में निम्नलिखित

$pip install dj-database-url

मैं उपयोग

import dj_database_url 
DATABASES = { 
    'default': dj_database_url.config() 
} 
+0

से' HOST' मान को बदलने का प्रयास करें। आपके उत्तर ने मेरी जान बचाई! –

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

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