Django не могу найти переменную среды? VIEW_DB_USER не найден. Объявите его как envvar или определите значение по умолчанию - PullRequest
0 голосов
/ 30 января 2020

Я разрабатываю приложение в django и помещаю его в Heroku.

Я хочу запросить мою базу данных с помощью SQL в моем views.py, поэтому я подключаюсь к своей базе данных с помощью connect method.

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

Поэтому я сохраняю их в файле .env в каталоге root и использую config функция для вызова этих переменных из моего views.py.

Однако я сталкиваюсь с:

VIEW_DB_USER не найдено. Объявите его как envvar или определите значение по умолчанию.

(ошибка при view_db_user = config("VIEW_DB_USER"))

Вот мои views.py:

import os 
import django_heroku 
from decouple import config
import dj_database_url

view_db_user = config("VIEW_DB_USER")
view_db_password = config("view_db_password")
view_db_host = config("view_db_host")
view_db_database = config("view_db_database")

mydb = pg2.connect(user=VIEW_DB_USER, password=view_db_password,
                                host=view_db_host, database=view_db_database)

Вот мой .env файл:

SECRET_KEY = 'credential_1'

VIEW_DB_USER = 'credential_2'
view_db_password = 'credential_3'
view_db_host = 'credential_4'
view_db_database = 'credential_5'

Из того, что я вижу, проблема в том, что функция config почему-то не работает должным образом. Но почему?

Обратите внимание, что это не работает как на локальном сервере, так и на heroku.

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

1 Ответ

0 голосов
/ 31 января 2020

решено:

Первая проблема - столбцы в файле .env. Со следующим исправлением он отлично работает в локальном режиме, в то время как на Heroku я все еще получал ту же ошибку:

SECRET_KEY = 'credential_1'

VIEW_DB_USER = credential_2
view_db_password = credential_3
view_db_host = credential_4
view_db_database = credential_5

Это было из-за того, что я забыл добавить переменные среды в Heroku Config Vars раздел

https://dashboard.heroku.com/apps/my_app_name/settings

См. это руководство в параграфе "развертывание в Heroku"

...