我在Django 1.9.x中有一个应用程序,我想使用multidb。
对我可以输入多个数据库的设置进行任何配置,当它在特定服务器上时,它使用正确的数据库。例如:
当我编写localhost时使用默认值,当我输入test serve时,自动切换到testserverdb,当我放入生产服务器使用productiondb时,我尝试使用multi-db documentation但它没有我想要的是这个案例是使用遗留数据库,而不是我的情况。
我是怎么做到的?
答案 0 :(得分:4)
在您的设置文件中:
try:
from [app_name].local_settings import *
except ImportError:
pass
将覆盖您在此local_settings文件中所做的更改。所以现在您可以为localhost,开发或生产提供不同的local_settings文件。您可以单独在这些文件中指定单独的数据库。
答案 1 :(得分:1)
听起来您希望拥有特定于环境的数据库,而不一定是连接到许多数据库的单个应用程序。您可以使用每个环境的自定义设置模块轻松完成此操作。
您可能拥有如下结构:
myproject/
- settings/
- __init__.py
- common.py
您需要将所有常用设置放在common.py
下。这将作为所有其他环境设置的基础。从这里开始,您可以使用一些设置来执行您想要的操作,但我建议您使用common.py
作为基本设置模块,可以覆盖locall.y
要执行此操作,您可以将DJANGO_SETTINGS_MODULE
设置为myproject.settings
,并设置在__init__.py
,
from .common import *
try:
from .local import *
except ImportError:
pass
然后在每个环境(生产/开发/等)上,您需要在local.py
中包含名为myproject/settings
的文件。当您的设置模块加载完毕后,您在local.py
文件中添加的任何设置都会覆盖common.py
。