如何在Django1.9.x中跨多个服务器轻松切换db

2024-06-17 19:02:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在django1.9.x中有一个应用程序,我想使用multidb。你知道吗

有任何配置的设置,我可以进入多个数据库,当它是在一个特定的服务器上使用正确的数据库。例如:

当我在编写localhost use default时,当我放入test service时,自动切换到testserverdb,当我放入production server use productiondb时,我尝试使用multi-db documentation但这不是我想要的,因为这种情况是使用遗留数据库,而不是我的情况。你知道吗

我是怎么做到的?你知道吗


Tags: test服务器数据库应用程序localhostdefaultserveruse
2条回答

在设置文件中:

try:
    from [app_name].local_settings import *
except ImportError:
    pass

您在此本地\u设置文件中所做的更改将被覆盖。因此,现在您可以为本地主机、开发或生产使用不同的本地\u设置文件。您可以在这些文件中分别指定一个单独的db。你知道吗

听起来您希望拥有特定于环境的数据库,而不一定是一个连接到多个数据库的应用程序。对于这些环境中的每一个,您都可以通过一个自定义设置模块轻松地实现这一点。你知道吗

您可能有如下结构:

myproject/
   - settings/
       - __init__.py
       - common.py

您需要将所有公共设置置于common.py之下。这将作为所有其他环境设置的基础。从这里开始,您可以使用一些设置来做您想做的事情,但是我建议您使用common.py作为可以在locall.y上重写的基本设置模块

为此,您可以将DJANGO_SETTINGS_MODULE设置为by myproject.settings,然后在__init__.py

from .common import *

try:
    from .local import *
except ImportError:
    pass

然后在每个环境(production/development/etc)中,您都希望在myproject/settings中包含一个名为local.py的文件。加载设置模块时,您在local.py文件中输入的任何设置都将覆盖common.py。你知道吗

相关问题 更多 >