Django 1.8.19无法连接SQL Server 2019提示v15版本不支持如何修复
问题根因
你使用的适配Django 1.8.19版本的sql_server.pyodbc驱动发布时间早于SQL Server 2019,驱动内置的版本校验逻辑中没有加入SQL Server 2019对应的v15版本支持,因此直接抛出不支持的错误。
你收到的报错指向驱动的版本判断逻辑:
raise NotImplementedError('SQL Server v%d is not supported.' % ver) NotImplementedError: SQL Server v15 is not supported.
可落地的解决步骤
- 第一步:修复现有配置错误
你贴出的数据库配置存在语法错误,PASSWORD字段的值末尾缺少闭合单引号,先修改为:'PASSWORD': 'ccccc', - 第二步:调整TDS协议版本参数
现有配置中tds_version=7.2适配的是SQL Server 2005等老旧版本,SQL Server 2019支持TDS 7.4版本,将OPTIONS中的extra_params修改为:'extra_params': 'tds_version=7.4', - 第三步:修改驱动的版本校验逻辑(核心解决步骤)
找到Python环境中安装的sql_server包路径,打开pyodbc/base.py文件,搜索上述报错的raise NotImplementedError代码行,在它之前的版本判断逻辑中,将v15加入支持列表,让SQL Server 2019沿用SQL Server 2017(v14)的兼容逻辑即可,绝大多数基础CRUD、事务功能都可以正常兼容。
如果你找不到该文件,可以在Python终端执行以下代码打印路径:import sql_server.pyodbc print(sql_server.pyodbc.__file__) - 可选方案:如果业务允许升级依赖,可更换为对高版本SQL Server支持更好的
django-mssql-backend驱动,注意需要确认驱动版本与Django 1.8的兼容性。
内容的提问来源于stack exchange,提问作者KHALIFARDY MIQDARSAH
相关产品推荐
相关产品推荐

