如何在Django中动态更改数据库?

2 投票
2 回答
4463 浏览
提问于 2025-04-16 20:31

在Django中,是否可以动态地更改正在使用的数据库?
比如说,使用一个数据库来进行插入和更新操作,然后切换到另一个数据库进行只读操作。

2 个回答

1

你也可以手动选择数据库来进行查询和保存,这在Django的多数据库文档中有说明。

基本上,你需要使用“using”这个关键词参数,像这样:

obj.save(using='alias')

还有QuerySet的“using”方法,可以这样使用:

Model.objects.using('alias').all()

alias是你在设置中的DATABASES部分给数据库起的名字。

8

你可以通过在设置中配置多个数据库来实现这个功能,然后使用一个路由器来指定哪个数据库配置应该用于读取和写入数据。

你可以去 https://docs.djangoproject.com/en/1.3/topics/db/multi-db/#database-routers 查看“MasterSlaveRouter”,那里有你需要的示例代码。

撰写回答