如何始终为某些django模型使用特定的DB连接?

时间:2016-05-24 22:30:50

标签: django django-models django-orm django-database multi-database

我会在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 个答案:

答案 0 :(得分:1)

您需要使用数据库路由器来实现您的需求。

以下是Using Database Routers

的官方文档