【问题标题】:Multiple databases in Django - MSSQLDjango 中的多个数据库 - MSSQL
【发布时间】:2020-07-15 11:51:15
【问题描述】:

我正在尝试连接到 django 中的另一个 MySQL 数据库。默认情况下,我使用 Django 在默认设置中提供的默认 LiteSQL。我相信我在设置中成功连接到 SQL 数据库。所以它看起来像这样:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },

    'timesheet': {
        'ENGINE': 'sql_server.pyodbc',
        'HOST': '......',
        'NAME': 'Database.department.someview',
        'USER': '....',
        'PASSWORD': '.....',
        'PORT': '.....',
        'OPTIONS': {
            'driver': 'ODBC Driver 13 for SQL Server',
        },
    }
}

知道我想在新数据库中选择一些东西并将其粘贴到视图中并使用它,就像我正在使用 liteSQL 数据库一样。有人可以指导我如何从这个数据库中选择吗?由于我使用的是默认值,因此选择看起来像 Name-of-model.objects.filter(id=deletesignificantaccountid) 但我不知道应该如何命名模型,因为模型中没有它。那么有人可以帮我吗?该数据库将仅用于读取,我不使用,也无法写入。

非常感谢。

【问题讨论】:

    标签: sql django database


    【解决方案1】:

    看来你想实现两件事:

    1. 使用多个数据库
    2. 使用现有数据库创建和使用模型

    是吗?

    1. 你的代码行是正确的,但是需要加上using("timesheet")doc here

    2. 你仍然需要模型来创建 python 对象,否则 django 将不知道如何处理 SQL 结果。关于使用遗留数据库的文档here

    【讨论】:

    • 1.是的 2. 我想同时使用这两个数据库。新的仅适用于选择 2。“您仍然需要有模型来创建 python 对象,否则 django 将不知道如何处理 SQL 结果。关于使用旧数据库的文档”-这意味着我将在我的模型中制作新的类,我将在其中定义我在新数据库中拥有的列并设置它。 db_table = 'timesheet' 它会正常工作吗?
    • db_table 是代表 MSSQL 服务器中模型的表的名称。要在读取此特定模型时使用timesheet db,您可以使用带有db_for_read 方法定义的db 路由器here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 2013-09-04
    • 2010-12-24
    • 2014-09-17
    相关资源
    最近更新 更多