小编Jod*_*ddy的帖子

如果Slave关闭,Django多个数据库将回退到Master

我有Django的MySQL数据库后端的主 - 从复制设置.目前我只为Master DB阅读和写作,但我的仪表板非常查询.我正在寻找一个选项,我可以在其中定义如下DATABASES

DATABASES = {
'default_slave': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'application',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '3306',
    },
'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'application',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '', 
        'PORT': '3306',
    },
}  
Run Code Online (Sandbox Code Playgroud)

对于仪表板,报告和各种其他应用程序,我想要做的是:

尝试连接:default_slave:default_slave如果可以使用,则使用default

也就是说,如果slave已启动,则从slave数据库本身获取报告,如果没有从master数据库获取报告.

Catch是,slave可以是up或down,我希望这可以动态选择哪个数据库用于获取报告,基于可更新性.

这可能吗 ?我可以预先测试连接并向前移动吗?

有了这个,我会在Master中写和sync_db,并且如果slave已启动,它总是从Slave读取.

需要一些解决方案/提示raw queries以及orm queries

路由器的概念看起来不错,但是奴隶的后备不可达,我不知道这种可能性.

UPDATE

如何进行MULTI-DATABASE

DATABASES

DATABASES = {
'default_slave': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'application',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '3306',
    },
'default': {
        'ENGINE': 'django.db.backends.mysql', …
Run Code Online (Sandbox Code Playgroud)

mysql django multiple-databases python-2.7

16
推荐指数
1
解决办法
3537
查看次数

标签 统计

django ×1

multiple-databases ×1

mysql ×1

python-2.7 ×1