Как решить эту ошибку "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 .

Вернуться на верх