Django动态使用多个数据库,而无需在设置中定义

2024-10-05 11:40:50 发布

您现在位置:Python中文网/ 问答频道 /正文

DR:除了默认的django数据库之外,我还需要从两个不同的用户选择的数据库中提取数据。不知道如何设置django来访问这些,除了使用连接.cursor().execute(“SQL”)

位置: 一个进程创建一个sqlitedb。数据库导入mysql。我正在编写一个django应用程序,它与mysql数据库(称之为StreamDB)交互,另一个mysql数据库具有用户需要查看的附加信息(称之为SourceDB),当然还有默认的django应用程序mysql数据库(称之为AppDB)。在

将有两个版本的SourceDB(prod和test)StreamDB导入的数据映射到其中一个SourceDB

我的“AppDB”中有一个表/模型,用于标识这些源(StreamDB名称,它映射到两个SourceDB中的哪个,以及其他一些数据)。下面是一个样本记录:

name: foo
path: /var/www/data/test/foo.sqlite
db_name: foo
source_db_name: bar
date_imported: 2014-05-03 10:20:30

这些是通过django管理器管理的,并手动添加(或通过外部脚本动态添加)

困境 根据选择的源,我的SQL需要将这两个数据库中的表联接起来。在以下位置使用动态数据库名称的查询示例:

^{pr2}$

我可以用变量来填充吗?在

问题 在这种情况下有没有必要使用Django的ORM模型?django能抓住数据库.settings从DB表?我要创建一个模型来管理它吗?(即上面的源表?)在

我不介意在后端管理db权限(假设django设置中的app database用户可以访问所有数据库)

希望以上这些都有意义。在


Tags: 数据django用户name模型test数据库应用程序

热门问题