Django数据库路由:自动故障转移



我有一个在Django框架中写下的应用程序,该应用程序吸引了PostgreSQL数据库。

由于我们对停机时间和冗余非常敏感,因此数据库将流复制使用到两个热台服务器。但是,由于目前主DB降低时,我必须手动更改settings.py中的数据库服务器地址以使Django切换。

我尚不非常熟悉Django数据库路由,因此我不确定如何进行操作,但是可以在Django中配置所有三个数据库以使路由层自动确定其中哪一个是当前的活动主,并相应地路由其查询?

(在运行期间将是完美的,但是我会很高兴地为"启动"安顿下来,并在程序文档中添加一条线,以重新启动对数据库故障转移时重新启动UWSGI VASSAL(。

您可以使用 django 使用多个数据库。 ORM 对其有很好的支持。从settings.py可以。另外,可以设置默认数据库,该数据库将由 django 使用(默认情况下(。

这是来自文档

DATABASES = {
            'default': {
                'NAME': 'app_data',
                'ENGINE': 'django.db.backends.postgresql',
                'USER': 'postgres_user',
                'PASSWORD': 's3krit'
            },
            'users': {
                'NAME': 'user_data',
                'ENGINE': 'django.db.backends.mysql',
                'USER': 'mysql_user',
                'PASSWORD': 'priv4te'
            }
        }

DATABASES的dict只是" Aliases"

django的 QuerySet支持using(db_alias)方法,该方法可以帮助您在数据库之间进行路由。

最新更新