Правильное подключение к Postgres на Heroku с помощью Django

Я новичок в Django и Heroku. Я запутался в том, как мне подключиться к базе данных Postgres на Heroku из моего приложения Django, учитывая тот факт, что все учетные данные и DATABASE_URL могут быть изменены. Во-первых, для подключения к Postgres на Heroku я начал с использования переменных окружения и жестко закодировал их в своей панели Heroku. Затем я понял, что это плохая практика, потому что значения могут быть изменены.

Я проверил это руководство от Heroku где они рекомендуют добавить это в настройки:

DATABASES['default'] = dj_database_url.config(conn_max_age=600, ssl_require=True)

После этого я добавил DATABASE_URL в свой файл .env - потому что иначе URL будет пустым. Теперь я могу получить все правильные учетные данные базы данных в моей DATABASE, которые такие же, как в моей приборной панели. Так что половина пути пройдена.

Затем я удалил все жестко закодированные переменные окружения с панели управления Heroku.

Затем, когда я попытался heroku run python src/manage.py migrate -a myapp передать данные, я получил ошибку:

django.db.utils.OperationalError: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
    Is the server running locally and accepting connections on that socket?

Как я понимаю, проблема в том, что он не может подключиться к базе данных (возможно, потому что я удалил переменные окружения).

Из того, что я видел в интернете - многие люди в своих руководствах по миграции на Postgres на Heroku используют подход с жестко закодированными переменными окружения - что является плохой практикой. В противном случае, руководство Heroku не показывает, как именно мы должны подключаться к базе данных с динамически обновляемыми учетными данными.

Прошу совета.

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