Heroku Postgres - Почему моя производственная база данных работает, хотя не указана в settings.py - Django? - PullRequest
0 голосов
/ 08 мая 2020

Я настроил свою базу данных в Heroku несколько месяцев на go, поэтому не помню точных шагов, которые я предпринял. Я использую надстройку Heroku- Postgres: https://devcenter.heroku.com/articles/heroku-postgresql

У меня DATABASE_PASS указан как конфигурационная переменная в Heroku. И у меня есть конфигурационная переменная для DATABASE_URL

В моем файле settings.py у меня есть только следующее, что касается моей базы данных. Почему мое приложение все еще работает на Heroku, если переменная DATABASES относится только к localhost?

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'my_dev',
        'USER': 'postgres',
        'PASSWORD': os.environ.get('DATABASE_PASS'),
        'HOST': 'localhost',
        'PORT': '5410',
    }
}

В документации Heroku- Postgres указано следующее:

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

Я что-то делаю не так? Не следует ли мне полагаться на DATABASE_URL как на переменную конфигурации?

Дополнительная информация - я использую пакет django-heroku pip.

1 Ответ

1 голос
/ 10 мая 2020

Почему мое приложение все еще работает на Heroku, если переменная DATABASES относится только к localhost?

Дополнительные сведения - я использую пакет django-heroku pip.

django-heroku делает довольно много, включая автоматическую настройку вашей базы данных из переменной среды DATABASE_URL:

Это автоматически настроит DATABASE_URL, ALLOWED_HOSTS, WhiteNoise (для ресурсов stati c), Logging и Heroku CI для вашего приложения.

...