Estoy tratando de conectar mi aplicación Django a SQL Server 2016. Intenté usar django-pyodbc pero no es compatible con Django 1.11. En su lugar, instalé django-mssql 1.8. Cuando intento ejecutar la aplicación me sale este error.
TypeError was unhandled by user code Message: 'NoneType' object is not callable En execute_from_command_line(sys.argv) en manage.py
Aquí están mis BASES DE DATOS de settings.py
DATABASES = { 'default': { 'ENGINE': 'sqlserver_ado', 'NAME': 'TEST2', 'HOST': 'PCNAME\SQLEXPRESS', 'USER': '', 'PASSWORD': '', 'OPTIONS' : { 'provider': 'SQLOLEDB', 'use_mars': True, }, } }Probé tanto el proveedor predeterminado como SQLOLEDB, pero siempre obtengo el mismo error. También probé con y sin usuario y contraseña establecidos, pero el error sigue siendo el mismo. Puedo conectarme a una base de datos MySQL local muy bien.
Estoy ejecutando Windows 10, Visual Studio 2015, SQL Server Express 2016
Editar:
Aquí está la salida de pip freeze
appdirs==1.4.3 Django==1.11 django-mssql==1.8 mysqlclient==1.3.10 packaging==16.8 pyodbc==4.0.16 pyparsing==2.2.0 pytz==2017.2 six==1.10.0Aquí están mis requisitos.txt
django==1.11 mysqlclient==1.3.10 django-mssql==1.8Como se indica en la documentación de django-mssql , la última versión solo es compatible con Django 1.8, por lo que no funcionará con Django 1.11.
Tendrá que esperar hasta que el paquete admita versiones más nuevas de django para actualizar. Ese es el problema cuando se usa Django con backends de base de datos no compatibles, depende del mantenimiento de paquetes de terceros, y este parece tener problemas para mantenerse actualizado con Django.
Siguiendo la documentación oficial de django (actualmente django 3.1) se debe usar django-mssql-backend . El adaptador de base de datos Django-MSSQL-backend Django es una bifurcación de Django-pyodbc-azure que:
Otras soluciones django-pyodbc-azure , django-sqlserver y django-mssql a partir de 2020-11 parecen estar obsoletas.
Puede usar django-pyodbc-azure porque es compatible con las versiones actuales de django 2.0. Después de la instalación, debe editar su archivo de configuración como se muestra a continuación:
DATABASES = { 'default': { 'ENGINE': 'sql_server.pyodbc', 'NAME': DB_NAME, 'USER': USER, 'PASSWORD': PASSWORD, 'HOST': HOST, 'PORT': PORT, 'OPTIONS': { 'driver': 'ODBC Driver 13 for SQL Server', 'unicode_results': True, }, } }Si instala la biblioteca TDS como controlador, su controlador será 'driver': 'Free TDS' Aquí 13 es la versión predeterminada. Si su versión instalada es diferente a esa, use ese número de versión en lugar de 13