gpt4 book ai didi

sql-server - Django ProgrammingError [42S02] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server] 无效的对象名称

转载 作者:行者123 更新时间:2023-12-03 09:56:58 25 4
gpt4 key购买 nike

我正在使用 Django version 2.0.2.我的 Django 应用程序连接到 MS SQL (连接如下)。

  DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'projectcreation',
'HOST': 'Host_name',
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
'dns': 'projectcreation'
},
}
}

因此,在尝试访问我的 Django 应用程序时出现以下错误:

django.db.utils.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Invalid object name 'projectcreation_partner'. (208) (SQLExecDirectW)")



我相信当我创建表(makemigrations+migrate)而不是创建看起来像这样的表时: [projectcreation].[dbo].[projectcreation_partner]它创建了这样的表 [projectcreation].[username].[projectcreation_partner] .所以改为放置 dbo我实际上希望看到它把我的用户名..

我想当应用程序尝试连接到 db 时它找不到它,因为它正在寻找一个包含 dbo 而不是用户名的 .. 当然,我可能是错的..

如果您需要更多信息,请告诉我,非常感谢您的帮助。

注意:db 和 application 都称为“projectcreation”,“partner”是其中一个模型的名称。

最佳答案

这是对我有用的:

首先,我删除了属于这个“用户名”模式的所有表(先备份数据)。

其次,在进行迁移之前,我将 SQL Server 中的默认架构更改为“dbo”。出于某种原因,我的默认架构以我的用户名命名,这首先是问题的根源。要更改默认架构,请转到数据库 -> [DBNAME] -> 安全性 -> 用户 -> [用户名]。在“常规”下的“属性”中,您应该能够更改“默认架构”字段的值。

第三,我移民了。首先使用此命令:

python manage.py migrate --fake projectcreation zero

请注意,“projectcreation”是我的应用程序的名称。
之后,这个命令:
python manage.py migrate projectcreation

这所做的是回滚到初始迁移(零)并应用它。如果没有这种回滚,数据库中就没有任何变化。

就是这样。

关于sql-server - Django ProgrammingError [42S02] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server] 无效的对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49137052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com