Django pymssql 迁移
Posted
技术标签:
【中文标题】Django pymssql 迁移【英文标题】:Django pymssql migration 【发布时间】:2016-12-14 16:06:14 【问题描述】:我必须将 MSSQL Server 数据库与 Django 中的项目一起使用,我使用 django-pymssql 依赖项,一开始一切正常。
当我运行初始迁移时,它会抛出一个错误:
django.db.utils.OperationalError: (5074, "对象 'UQ__auth_use__F3DBC5726EFED139' 依赖于列 'username'.DB-Lib 错误消息 20018, 严重性 16:\n一般 SQL Server 错误: 检查来自 SQL Server 的消息\nDB-Lib 错误消息 20018,严重性 16:\n一般 SQL Server 错误:检查来自 SQL Server 的消息\n")
这只是在 django 迁移尝试这个之后发生的:
正在申请 auth.0008_alter_user_username_max_length...
所以,我猜测 Django 正在尝试对某个字段进行移动,但 MSSQL 在它被更改时抛出了错误。
我正在使用 Ubuntu 16.10,所以如果有人知道如何避免此错误,将会有很大帮助。
【问题讨论】:
【参考方案1】:你可以检查你的 django-mssql 版本,我相信 1.7+ 应该不会再有这个问题了。
尝试对数据库运行以下命令:
alter table [user] drop constraint [UQ__auth_use__F3DBC5726EFED139];
drop index [UQ__auth_use__F3DBC5726EFED139] on [user];
然后重新运行 manage.py migrate。
Drop Constraint Failed - unable to drop index with ALTER TABLE DROP CONSTRAINT
【讨论】:
其实这就是解决方案。我不知道使用此设置是否会遇到更多麻烦,但我会尝试一下。非常感谢!以上是关于Django pymssql 迁移的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Manjaro 上安装 pymssql - 编译问题?
当端口 1433 关闭时,pymssql 库如何回退到命名管道端口?
Python 2.7 pyodbc 或 pymssql 与 R RODBC