一尘不染

Django:动态数据库文件

django

在我的Django项目中,我对第三方应用程序具有依赖性,该第三方应用程序在具有已知模式的各个目录中生成SQLite缓存文件。

我想使用Django模型来访问这些数据库,但是显然我不能使用静态DATABASES设置。

如何在任意路径上动态打开SQLite数据库?

编辑

正如Byron Ruth所指出的,解决方案是将django.db.connections结合使用usingQuerySet中的函数。


阅读 410

收藏
2020-04-01

共1个答案

一尘不染

django.db.connections是包裹一个简单的DATABASES在你的设置中定义。包装器类在这里: django.db.utils#L137-L227

from django.db import connections

# Add connection information dynamically..
connections.databases['new-alias'] = { ... }
# Ensure the remaining default connection information is defined.
# EDIT: this is actually performed for you in the wrapper class __getitem__
# method.. although it may be good to do it when being initially setup to
# prevent runtime errors later.
# connections.databases.ensure_defaults('new-alias')

# Use the new connection
conn = connections['new-alias']
2020-04-01