如何通过解耦设置用于开发和生产的数据库?

时间:2019-10-16 19:25:04

标签: django

在我的设置文件中,我正在使用ifelse语句来控制要使用的数据库。

我正在使用:

1)开发:本地SQL数据库。
2)生产:生产中的PostgresSQL(项目在Heroku中托管)。

  

取决于是否连接到每个数据库的最佳方法是什么   我正在开发(本地PC)或生产(部署到   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

0 个答案:

没有答案