不能看到有多个数据库景观SQL查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不能看到有多个数据库景观SQL查询相关的知识,希望对你有一定的参考价值。
Django的2.1.7,mysql的。 DATABASES配置是这样的:
DATABASES = {
'default': {},
'auth_db': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'auth',
...
},
'db1': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db1',
...
},
'db2': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'd2',
...
}
}
我有看原始的SQL查询的各种问题:
1)无法打印特定查询集的查询:
qs = Model.objects.using("db2").filter(...)
print(qs.query)
此代码下降qazxsw POI,因为它不尊重qazxsw POI,有点检查默认数据库里面是空的(空default_db是相当好的在Django文档说)
2)当在运行时我打开一个壳监视查询:
ImproperlyConfigured
我刚看到这一点:
.using("db2")
from django.db import connections
print(connections["db1"].queries)
设置像文档说。
任何人有这种多分贝问题的经验?
编辑:我的数据库路由器配置以及在文档中说。所有处于运行良好,但对于调试目的,当然我需要一个壳在不同的数据库手动测试查询集。
数据库的设置必须配置一个默认的数据库;任何数量的额外的数据库也可以被指定。
我觉得这是从[{'sql': 'None', 'time': '0.001'},
{'sql': 'None', 'time': '0.000'},
{'sql': 'None', 'time': '0.008'}]
。所以,你不能设置debug=True
空。所以,你必须通过插入虚拟数据设置默认。
如果解决了第一个问题,但第二个问题仍然存在,请让我知道。
编辑:
如果默认数据库的概念并不在项目的上下文中有意义的,你必须要小心总是指定要使用的数据库。 Django的要求,默认的数据库条目进行定义,但参数字典可以留空,如果不会使用它。要做到这一点,你必须为所有的应用程序的模型,包括那些在你使用任何的contrib和第三方应用程序的database doc,所以没有查询被路由到默认的数据库。下面是一个例子settings.py片断限定两个非默认数据库,与有意留为空的默认项:
从default
。所以,你需要配置DATABASE_ROUTERS。
以上是关于不能看到有多个数据库景观SQL查询的主要内容,如果未能解决你的问题,请参考以下文章
sql [SQL查询片段]用于在命令行或通过R和其他工具使用SQL的快速代码段#tags:sql,R,text processing,命令li