通过Django连接SQL Server出错,执行makemigrations命令失败
解决Django 1.11 + SQL Server执行
makemigrations报错问题 最近刚好碰到和你一模一样的场景:用Visual Studio开发,环境是Django 1.11、Python 2.7、django-mssql 1.8、pip 9.0,已经在settings里配置好SQL Server连接信息,但执行manage.py makemigrations时直接报错,报错堆栈如下:
Executing manage.py makemigrations Traceback (most recent call last): File "E:\Django Projects\DjangoMSSQLDatabaseConn\DjangoMSSQLDatabaseConn\manage.py", line 17, in execute_from_command_line(sys.argv) File "E:\Django Project...
下面是我亲测有效的几个排查和解决方向,你可以挨个试:
- 先确认依赖版本匹配:django-mssql 1.8确实适配Django 1.11和Python 2.7,但有时候pip安装会出小问题,先执行
pip show django-mssql检查版本,不对的话就重新装指定版本:pip install django-mssql==1.8 - 检查数据库配置格式:settings.py里的SQL Server配置得严格按规范来,别写错字段,正确格式参考:
DATABASES = { 'default': { 'ENGINE': 'sqlserver_ado', # 这里必须是sqlserver_ado,不能写错 'NAME': '你的数据库名称', 'USER': '数据库登录用户名', 'PASSWORD': '登录密码', 'HOST': '服务器地址\\实例名', # 比如本地的localhost\\SQLEXPRESS,注意双反斜杠 'PORT': '', # 默认1433端口可以留空,也可以明确写1433 } } - 安装对应ODBC驱动:django-mssql依赖ADO连接,必须在系统里装SQL Server的ODBC驱动,针对Python 2.7,推荐装ODBC Driver 11 for SQL Server,别装太高版本,不然兼容性会出问题
- 清理旧迁移文件:如果之前生成过错误的迁移文件,会干扰后续操作,找到项目里每个app下的migrations文件夹,删掉里面除了
__init__.py之外的所有文件,再重新执行manage.py makemigrations - 确认Visual Studio的环境配置:确保VS里选的是你当前用的Python 2.7环境,别不小心切到其他版本的Python了,环境不匹配会出各种奇怪的错误
内容的提问来源于stack exchange,提问作者siva narayana
相关产品推荐
相关产品推荐

