Recentemente ho installato un'app di Django su Heroku. La home page guarda bene, ma quando provo ad andare ad una pagina che consiste nel fare una query (ad esempio p = Photo.objects.get(title=title)
), ottengo questo errore:OperationalError non è riuscito a connettersi al server
could not connect to server: Connection refused
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
In accordo con this answer, ho fatto $ heroku pg:promote HEROKU_POSTGRESQL_GREEN_URL
Poi nel mio settings.py:
DATABASES = {'default': dj_database_url.config(default=os.environ['DATABASE_URL'])}
ancora avuto lo stesso errore, così ho provato a guardare i risultati di questa (come suggerisce 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}
A quel punto mi sono reso conto che non so cosa dovrei cercare in questo. Non riesco ancora a capire cosa significhi l'errore, quindi non sono sicuro di come procedere nel debugarlo.
Sei in grado di interrogare il database dalla shell? Come importare i tuoi modelli e quindi eseguire p = Photo.objects.get (title = title)? –
No, ho lo stesso errore quando importo i modelli ed eseguo qualcosa come 'print Photo.objects.all()'. – snorthway
Quando esegui 'heroku config', vedi' DATABASE_URL' nell'elenco di vass config? Inoltre, non dovresti aver bisogno della parte 'default ='; Penso che dovrebbe essere semplicemente 'dj_database_url.config (os.environ ['DATABASE_URL'])' – jacobian