如何始终为某些 django 模型使用特定的数据库连接?
Posted
技术标签:
【中文标题】如何始终为某些 django 模型使用特定的数据库连接?【英文标题】:How to always use a specific DB connection for certain django model? 【发布时间】:2016-09-22 08:08:29 【问题描述】:我将在 django 应用程序中添加一个程序,我需要在其中存储数据,但只需要几个小时,我也不想在我的数据库模式中添加另一个表(这有点大),我是考虑使用 redis 完成任务,最终我想要实现的是拥有一个 Transfer
模型,并且我希望该模型始终使用另一个数据库进行其 CRUD 操作。
例子:
Transfer.objects.all() # Always be the same as Transfer.objects.using('redis').all()
OtherModel.objects.all() # Always use default DB
# Same for save
transfer_instance.save() # Always translate to transfer_instance.save(using='redis')
other_instance.save() # Work as usuall using default DB
我怎样才能做到这一点?只要有效,我不介意使用晦涩的诡计。
谢谢!
【问题讨论】:
【参考方案1】:您将需要使用数据库路由器来实现您所需要的。
这里是Using Database Routers的官方文档
【讨论】:
以上是关于如何始终为某些 django 模型使用特定的数据库连接?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不定义内容类型或模型的情况下使用 Django 权限?