Django ORM:如何查询处于只读模式且在 model.py 文件中没有引用的辅助数据库
Django ORM: How to query secondary database which is in read-only mode and no reference in model.py file
我想查询基本上是生产数据库的辅助数据库。目前我正在使用直接查询,但想使用 ORM。
我当前的 models.py 文件如下所示。此处用户提供 TABLE 名称。为简单起见,考虑 TABLE 是 "SERVER_LIST".
from django.db import connections
# Create your models here.
def my_custom_sql(TABLE):
with connections["my_oracle"].cursor() as cursor:
cursor.execute("select * from {0} where server = 'XYZ';".format(TABLE))
row = cursor.fetchall()
return row
数据库entry:setttings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mydatabase',
},
'my_oracle': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'xyz:1234/ABCDB',
'USER': 'ABC',
'PASSWORD': '1234'
},
}
我想 运行 使用 Django ORM 进行相同的查询。有人可以帮助如何连接到辅助数据库并为此数据库创建 models.py 文件。我参考了这个 link 但它导入了 model.py 文件,我认为在我的情况下这是不可能的,因为数据库已经存在并且处于只读模式。
settings.py
文件中的 DATABASES
变量应如下所示:
DATABASES = {
'default': DEFAULT_DB_CONFIG,
'slave': SLAVE_DB_CONFIG,
}
并且当您使用 ORM 并想要查询 table 时,您可以使用如下所示的 using
界面:
SampleModel.objects.using('slave').all()
检查文档:https://docs.djangoproject.com/en/3.0/topics/db/multi-db/
我想查询基本上是生产数据库的辅助数据库。目前我正在使用直接查询,但想使用 ORM。
我当前的 models.py 文件如下所示。此处用户提供 TABLE 名称。为简单起见,考虑 TABLE 是 "SERVER_LIST".
from django.db import connections
# Create your models here.
def my_custom_sql(TABLE):
with connections["my_oracle"].cursor() as cursor:
cursor.execute("select * from {0} where server = 'XYZ';".format(TABLE))
row = cursor.fetchall()
return row
数据库entry:setttings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mydatabase',
},
'my_oracle': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'xyz:1234/ABCDB',
'USER': 'ABC',
'PASSWORD': '1234'
},
}
我想 运行 使用 Django ORM 进行相同的查询。有人可以帮助如何连接到辅助数据库并为此数据库创建 models.py 文件。我参考了这个 link 但它导入了 model.py 文件,我认为在我的情况下这是不可能的,因为数据库已经存在并且处于只读模式。
settings.py
文件中的 DATABASES
变量应如下所示:
DATABASES = {
'default': DEFAULT_DB_CONFIG,
'slave': SLAVE_DB_CONFIG,
}
并且当您使用 ORM 并想要查询 table 时,您可以使用如下所示的 using
界面:
SampleModel.objects.using('slave').all()
检查文档:https://docs.djangoproject.com/en/3.0/topics/db/multi-db/