В моем файле настроек я использую оператор ifelse для управления используемой базой данных.
Я использую:
1) Разработка:локальная база данных SQL.
2) Производство: PostgresSQL в работе (проект, размещенный в Heroku).
Каков наилучший подход для подключения к каждой базе данных в зависимости от того, работаю ли я в разработке (локальный ПК) или в производственной (развертывание в Heroku)?
Верносейчас я использую условие ifelse, но мне приходится менять DEBUG каждый раз, когда я работаю локально. И иногда я забывал изменить это значение на false для производства.
У меня есть файл .env, содержащий все эти переменные.
settings.py:
import os
from decouple import config
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)
SECURITY WARNING: don't run with debug turned on in production!
if DEBUG:
# Redirecciona www y http a https
SECURE_SSL_REDIRECT = False
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
else:
# Redirecciona www y http a https
SECURE_SSL_REDIRECT = True
### HEROKU POSTGRESS ACCESS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': config('HEROKU_POSTGRESQL_NAME'),
'USER': config('HEROKU_POSTGRESQL_USER'),
'PASSWORD': config('HEROKU_POSTGRESQL_PASSWORD'),
'HOST': config('HEROKU_POSTGRESQL_HOST'),
'PORT': config('HEROKU_POSTGRESQL_PORT'),
}
}
Еще одна опция, которую я недавно нашел: Django-Split-Setting. Мне нужно исследовать это дальше.
https://github.com/sobolevn/django-split-settings