2008-10-03 55 views

回答

2

目前没有 - 每个项目使用一个数据库,并且每个应用程序必须存在于其中。如果你想拥有一个特定于应用程序的数据库,那么你不能通过Django ORM来实现。请参阅Multiple Database Support上的Django wiki页面。

5

是的 - 低级的API已经到位,它现在只是缺少一个方便的高级API。这些报价来自James Bennett (Django's release manager) on programming reddit

它已经存在 - 在一个非常低级别的API对于那些谁看的代码库 - 现在个月(每QuerySetQuery,这反过来又接受支持数据库连接作为参数)。没有任何高层次的记录API,但我知道那些已经在做并且一直在做诸如多DB /分片场景的人。

...这不一定是需要大写的东西; __init__()方法QuerySet接受关键字参数query,该参数应该是django.db.models.sql.Query的实例。反过来,Query__init__()方法接受关键字参数connection,该关键字参数应该是(针对您的数据库的后端特定子类)django.db.backends.BaseDatabaseWrapper的实例。

从那里,它很容易;例如,您可以在管理器上覆盖get_query_set(),以始终使用所需的连接返回QuerySet,或者设置分片逻辑等功能,根据传入查询参数等确定使用哪个DB。

相关问题