我有两个数据库,一个用于开发,另一个用于生产,我在设置中设置了两个数据库,但我如何在两个数据库之间交替。现在我在所有对象中使用方法,但我不知道这是否是最好的形式。
settings.py
DATABASES = {
'default': {
'ENGINE': os.getenv('DB_PRODUCTION_ENGINE', 'change-me'),
'NAME': os.getenv('POSTGRES_PRODUCTION_DB', 'change-me'),
'USER': os.getenv('POSTGRES_PRODUCTION_DB_USER', 'change-me'),
'PASSWORD': os.getenv('POSTGRES_PRODUCTION_DB_PASSWORD', 'change-me'),
'HOST': os.getenv('POSTGRES_PRODUCTION_HOST', 'change-me'),
'PORT': os.getenv('POSTGRES_PRODUCTION_PORT', 'change-me'),
},
'development': {
'ENGINE': os.getenv('DB_DEVELOPMENT_ENGINE', 'change-me'),
'NAME': os.getenv('POSTGRES_DEVELOPMENT_DB', 'change-me'),
'USER': os.getenv('POSTGRES_DEVELOPMENT_DB_USER', 'change-me'),
'PASSWORD': os.getenv('POSTGRES_DEVELOPMENT_DB_PASSWORD', 'change-me'),
'HOST': os.getenv('POSTGRES_DEVELOPMENT_HOST', 'change-me'),
'PORT': os.getenv('POSTGRES_DEVELOPMENT_PORT', 'change-me'),
}
}
示例查询集
def get_database_name(request):
environment = request.session.get('environment', 'default')
return environment
using = get_database_name(request)
model = Model.objects.using(using)
1条答案
按热度按时间w7t8yxp51#
您可以通过www.example.com文件在两个dbs之间切换settings.py。本地DEBUG设置为true,生产环境中设置为false。考虑到这一点: