Как решить эту ошибку "connection to local host failled " при развертывании моего проекта django на heroku
Я создаю приложение для Facebook с помощью Django и хочу развернуть свой проект на Heroku. При развертывании проекта я помещаю важные данные в файл .env с помощью модуля decouple. Мой файл settings.py выглядит следующим образом:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': config('DB_NAME'),
'USER': config('DB_USER'),
'PASSWORD' : config('DB_PASSWORD'),
'HOST' : config('DB_HOST'),
'PORT': '5432',
}
}
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
USE_I18N = True
USE_TZ = True
STATIC_URL = 'static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
# Default primary key field type
и мой .env файл выглядит следующим образом
SECRET_KEY=#####
DB_NAME=#######
DB_USER=########
DB_PASSWORD=#######
DB_HOST=#########
и я столкнулся с этой ошибкой:
OperationalError at /login
connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
Request Method: POST
Request URL: https://facebook-django-akhil.herokuapp.com/login
Django Version: 4.0.6
Exception Type: OperationalError
Exception Value:
connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
Exception Location: /app/.heroku/python/lib/python3.10/site-packages/psycopg2/init.py, line 122, in connect
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.10.5
Python Path:
['/app/.heroku/python/bin',
'/app',
'/app/.heroku/python/lib/python310.zip',
'/app/.heroku/python/lib/python3.10',
'/app/.heroku/python/lib/python3.10/lib-dynload',
'/app/.heroku/python/lib/python3.10/site-packages']
Server time: Thu, 14 Jul 2022 13:44:31 +0000
А .env
файл предназначен для вашего локального развертывания и не должен быть зафиксирован в вашем git-репозитории. При запуске в Heroku вы устанавливаете эти значения с помощью config vars.
Итак, для каждого из элементов в вашем .env
файле, вам нужно установить config var в Heroku следующим образом:
heroku config:set DB_HOST=somehost.com
Вы также можете установить эти параметры в Heroku Dashboard, если вы предпочитаете это CLI. Дополнительную информацию см. в документации по Heroku .