微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]无效的对象名称“MYSCHEMA.MyUnmanagedModel”

如何解决Django [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]无效的对象名称“MYSCHEMA.MyUnmanagedModel”

我遇到了这个问题:

django.db.utils.ProgrammingError: ('42S02',"[42S02] [Microsoft][ODBC Driver 17 for sql Server][sql Server]无效的对象名称 'MYSCHEMA.MyUnmanagedModel'。

这是一个非托管模型,所以我知道我必须提前手动创建表。

这是模型:

class MyUnmanagedModel(models.Model):
    id = models.IntegerField(db_column="ID",primary_key=True)
    end_year = models.IntegerField(db_column="endyear")
    grade = models.CharField(db_column="grade",max_length=2)
    enrollments = models.IntegerField(db_column="enrollments")

    class Meta(object):
        managed = False
        db_table = "[MYSCHEMA].[MyModelTable]"

我已确保我的 docker 数据库包含适当的 'MYSCHEMA' 和表 'MyModelTable',并且它是根据模型(所有适当的列)适当构建的。

我正在使用 factory-boy 创建对象:这是我的工厂:

class MyUnmanagedModelFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = MyUnmanagedModel
        database = "secondary_database"

    id = factory.Sequence(lambda n: n)
    end_year = 2021
    grade = 1
    enrollments = 1200

我在我的项目中使用了多个数据库,“secondary_database”是保存具有适当架构的数据库数据库

DATABASES = {
    "default": {
        "ENGINE": "mssql","NAME": os.environ.get("default_NAME"),"HOST": os.environ.get("default_HOST"),"USER": os.environ.get("default_USER"),"PASSWORD": os.environ.get("default_PASSWORD"),"PORT": os.environ.get("default_PORT"),"OPTIONS": {
            "host_is_server": True,"driver": os.environ.get("ODBC_DRIVER"),},"secondary_database": {
        "ENGINE": "mssql","NAME": os.environ.get("secondary_NAME"),"HOST": os.environ.get("secondary_HOST"),"USER": os.environ.get("secondary_USER"),"PASSWORD": os.environ.get("secondary_PASSWORD"),"PORT": os.environ.get("secondary_PORT"),

使用 Datagrip 或 Azure Data Studio,我可以连接到 secondary_database,我可以看到 MYSCHEMA 存在,我可以确认表 'MyModelTable' 存在。

当我运行 MyUnmanagedModelFactory() 时,我看到错误

django.db.utils.ProgrammingError: ('42S02',"[42S02] [Microsoft][ODBC Driver 17 for sql Server][sql Server]Invalid object name 'MYSCHEMA.MyModelTable'. (208) (sqlExecDirectW)")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?