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 库如何回退到命名管道端口?

pymssql INSERT 不会自动增加 ID

Python 2.7 pyodbc 或 pymssql 与 R RODBC

pymssql连接sql server报错:pymssql._pymssql.OperationalError

pymssql executemany insert valueerror