Django无法连接到SQL Server 2019。

3
我有一个 Django 项目并且想要连接到 SQL Server 2019。但是在进行迁移时遇到了问题,下面是错误信息:
django.db.utils.NotSupportedError: SQL Server v15 不被支持。
我使用的是 Django 2.1.15 和 SQL Server Microsoft SQL Server 2019 (RTM) - 15.0.2000.5。
这是否意味着该 Django 版本不能使用 SQL Server 2019?

1
"SQL Server v15 不被支持。" 这里非常明确,你需要一个支持它的 Django 版本,或者使用一个旧版本的 SQL Server。 - Thom A
根据Django官网的说法,2.1已经完全不再受支持,2.2也已经不再是主流支持版本。看起来3.0在去年底已经发布了。 - Thom A
4个回答

6

问题已解决。感谢其他论坛的帮助。

安装了2019版本:Django后端用于Microsoft SQL Server和Azure SQL Database,使用pyodbc,兼容SQL Server 2019。

pip install django-pyodbc-azure-2019

系统检查未发现问题(0被静音)。 2020年9月19日 - 18:52:09 Django版本2.1.15,使用设置'mdm.settings' 在http://127.0.0.1:8000/上启动开发服务器 使用CONTROL-C退出服务器。

我将创建一个新的虚拟环境并共享该过程,因为当前的环境非常混乱:

(venvAzure) luca@webserver:~/app/MDM_SQLServer$ pip freeze
certifi==2020.6.20
cffi==1.14.2
chardet==3.0.4
cryptography==3.1
Django==2.1.15
django-azure-sql-backend==2.1.1.1
django-mssql-backend==2.8.1
django-pyodbc==1.1.3
django-pyodbc-azure-2019==2.1.0.0
idna==2.10
msal==1.5.0
pycparser==2.20
PyJWT==1.7.1
pyodbc==4.0.30
pytz==2020.1
requests==2.24.0
six==1.15.0
urllib3==1.25.10

感谢


1
我刚创建了一个账户来回答这个问题。我浪费了很多时间才能解决它。
为了使用 SQL Server 2019,我需要更新 Django 到最新版本 3.x,并安装 django-mssql-backend、django-pyodbc 和 pyodbc。
在你的 DATABASE 定义中,添加以下行以使其工作:
'OPTIONS': { 'driver': 'ODBC Driver 17 for SQL Server', },

0

具体安装步骤如下:

 pip install Django==2.1.15
   
 pip install django-pyodbc-azure-2019==2.1.0.1

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'dtabase_name',
        'USER': 'sa',
        'PASSWORD': '123456',
        'HOST': 'Your_host',
        'PORT': '',

        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
        },
    },
}

0
通过将以下代码添加到"settings.py",您可以检查要使用哪个ODBC驱动程序版本。*在我的情况下,它是"ODBC Driver 17 for SQL Server":
# "settings.py"

import pyodbc
print("This is " + pyodbc.drivers()[-1]) # ODBC Driver 17 for SQL Server

例如,我使用mssql-djangoDjangoMSSQL(SQL Server)连接,使用SQL Server身份验证。*我使用SQL Server 2019 Express

因此,在"OPTIONS"中设置以下代码为"ODBC Driver 17 for SQL Server",并将其添加到"settings.py"中:

# "settings.py"

DATABASES = {
    'default':{
        'ENGINE':'mssql',  
        'NAME':'test',           
        'USER':'john',                      
        'PASSWORD':'johnpw',                
        'HOST':'DESKTOP-QVRCPTA\SQLEXPRESS',
        'PORT':'',                           
        'OPTIONS': { # Here
            'driver': 'ODBC Driver 17 for SQL Server', 
        },
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接