尝试使用 django-mssql-backend 将 Django 连接到 SQL 服务器时出错
Error while trying to connect Django to SQL Server using django-mssql-backend
Windows 10
SQL Server 2019
Python 3.9.1
Django 3.2.5
pip freeze:
asgiref==3.4.1
Django==3.2.5
django-mssql-backend==2.8.1
djangorestframework==3.12.4
pyodbc==4.0.30
pytz==2021.1
sqlparse==0.4.1
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'dbForDjango',
'USER': 'sa',
'PASSWORD': 'sdf874sd21',
'HOST': 'DESKTOP-AR76KF2\SQL_SERVER',
'PORT': '',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
},
}
我可以运行服务器没有任何问题也py manage.py shell是
工作,但 Django 根本无法与数据库通信。
命令“py manage.py dbshell”出现这个错误:
Please ignore the directory name "playingWithFastAPI", am using Django not FastAPI :)
py manage.py迁移出现错误:
dbshell 错误是一个已知问题(参见 https://github.com/ESSolutions/django-mssql-backend/issues/100),因为 django-mssql-backend 与 Django 3.1+ 不兼容
所以对于 3.2 以上的 Django 版本,你必须使用 mssql-django。
https://docs.microsoft.com/en-us/samples/azure-samples/mssql-django-samples/mssql-django-samples/
祝你好运
py -m pip install django mssql-django
# settings.py
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "DATABASE_NAME",
"USER": "USER_NAME",
"PASSWORD": "PASSWORD",
"HOST": "HOST_ADDRESS",
"PORT": "1433",
"OPTIONS": {"driver": "ODBC Driver 17 for SQL Server",
},
},
}
Windows 10
SQL Server 2019
Python 3.9.1
Django 3.2.5
pip freeze:
asgiref==3.4.1
Django==3.2.5
django-mssql-backend==2.8.1
djangorestframework==3.12.4
pyodbc==4.0.30
pytz==2021.1
sqlparse==0.4.1
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'dbForDjango',
'USER': 'sa',
'PASSWORD': 'sdf874sd21',
'HOST': 'DESKTOP-AR76KF2\SQL_SERVER',
'PORT': '',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
},
}
我可以运行服务器没有任何问题也py manage.py shell是
工作,但 Django 根本无法与数据库通信。
命令“py manage.py dbshell”出现这个错误:
Please ignore the directory name "playingWithFastAPI", am using Django not FastAPI :)
py manage.py迁移出现错误:
dbshell 错误是一个已知问题(参见 https://github.com/ESSolutions/django-mssql-backend/issues/100),因为 django-mssql-backend 与 Django 3.1+ 不兼容
所以对于 3.2 以上的 Django 版本,你必须使用 mssql-django。 https://docs.microsoft.com/en-us/samples/azure-samples/mssql-django-samples/mssql-django-samples/ 祝你好运
py -m pip install django mssql-django
# settings.py
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "DATABASE_NAME",
"USER": "USER_NAME",
"PASSWORD": "PASSWORD",
"HOST": "HOST_ADDRESS",
"PORT": "1433",
"OPTIONS": {"driver": "ODBC Driver 17 for SQL Server",
},
},
}