Подтвердить что ты не робот

Параметры настройки базы данных Heroku - Как настроить базу данных dev django dev?

Я пытаюсь заставить свое местное приложение dev django работать после выполнения этих инструкций по добавлению настроек базы данных env.

https://devcenter.heroku.com/articles/django-injection

Я выполнил инструкции, но получаю следующую ошибку, когда мое приложение пытается получить доступ к локальной базе данных

Request Method: GET
Request URL:    http://localhost:8000
Django Version: 1.4
Exception Type: ImproperlyConfigured
Exception Value:    
You need to specify NAME in your Django settings file.

Настройки моей базы данных изначально,

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'db',                      # Or path to database file if using sqlite3.
        'USER': 'foo',                      # Not used with sqlite3.
        'PASSWORD': 'bar',                  # Not used with sqlite3.
        'HOST': 'localhost',                
        'PORT': '5432',
    }
}

В статье heroku говорится добавить следующее в файл настроек

import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

как мне получить dj_database_url.config для использования моих настроек моего dev, когда DATABASE_URL недоступен в dev?

4b9b3361

Ответ 1

Вы можете просто добавить свои настройки dev к значениям по умолчанию, подобным этому...

import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://foo:[email protected]:5432/db')}

Ответ 2

Используйте это в своих настройках .py:

DATABASES = {'default': dj_database_url.config(default=os.environ['DATABASE_URL'])}

и в вашем .ENV файле есть следующее:

DATABASE_URL=postgres://localhost/yourdbname

когда вы запускаетесь с "стартом мастера", он будет смотреть на файл .env и создавать все эти переменные среды, точно так же, как работать с самим Heroku. Напечатайте конфигурацию "heroku", чтобы подтвердить, что у вас есть набор DATABASE_URL, который вы должны добавить, если вы добавили аддон базы данных postgres.

Ответ 3

Просто установите переменную окружения в вашей операционной системе и проверьте, не установлен ли он или нет. Например, с системой UNIX:

# In ~/.bash_profile
export LOCAL_DEV=true

# In settings.py
import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

if bool(os.environ.get('LOCAL_DEV', False)):
    # Override DATABASES['default'] with your local database configuration

Кроме того, если вам нужно установить переменную окружения на вашем пространстве геройку:

heroku config:add MY_VAR='my_value'

Ответ 4

Я просто попробовал это, и вот мой код:

import dj_database_url

local_db = 'postgres://django_login:[email protected]/django_db'
DATABASES = {'default': dj_database_url.config(default=local_db)}

Мое имя базы данных "django_db", имя пользователя "django_login", пароль - "123456".

Мой код может работать как на локальной машине, так и на геройку.

Ответ 5

import dj_database_url

DATABASES = {'default': dj_database_url.config( 'Postgres:// имя_пользователя ВАШ ПАРОЛЬ @ yourhosturl: 5432/ имя_базы_данных' по умолчанию =) }

** Заменить жирный шрифт на настройки базы данных если вы используете локальную базу данных, замените yourhosturl на localhost