Правильное подключение к 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 не показывает, как именно мы должны подключаться к базе данных с динамически обновляемыми учетными данными.
Прошу совета.