我正在考虑为Django项目上的某些应用程序创建一个单独的SQLite数据库.
但是,如果可能的话,我不想使用直接的SQLite访问.Django风格的ORM访问这些数据库将是理想的.
这可能吗?
谢谢.
是的 - 这方面的低级API已经到位,它目前缺少一个方便的高级API.这些引用来自James Bennett(Django的发布经理)编程reddit:
它已存在 - 用于查看代码库的人的极低级API - 几个月了(每个
QuerySet
都由a支持Query
,后者又接受数据库连接作为参数).没有任何高级别的文档API,但我知道那些已经在做的人并且一直在做多个DB /分片场景.......这不一定需要大量的报道; 接受关键字参数的
__init__()
方法,QuerySet
该参数query
应该是一个实例django.db.models.sql.Query
.反过来,该__init__()
方法Query
接受一个关键字参数connection
,该参数应该是(您的数据库的特定于后端的子类)的实例django.db.backends.BaseDatabaseWrapper
.从那里,它很容易; 例如,您可以
get_query_set()
在管理器上覆盖以始终QuerySet
使用所需的连接返回a ,或者设置诸如分片逻辑之类的内容,以根据传入的查询参数等确定要使用的DB等.