Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se explica cómo migrar un proyecto de Django desde el django-mssql-backend paquete (que usó el sql_server.pyodbc motor) al mssql-django paquete.
Overview
El mssql-django paquete es el sucesor de django-mssql-backend. Sigue proporcionando un back-end de base de datos de Django para SQL Server mediante pyodbc, pero con un nombre de paquete actualizado, un identificador de motor y compatibilidad con versiones más recientes de Django.
| Feature | django-mssql-backend | mssql-django |
|---|---|---|
| Nombre del paquete | django-mssql-backend |
mssql-django |
| MOTOR | sql_server.pyodbc |
mssql |
| Soporte técnico de Django | 2.2, 3.0, 3.1 | 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0 |
| Mantenido por | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Paso 1: Actualizar el paquete de Python
Desinstale el paquete anterior e instale el nuevo:
pip uninstall django-mssql-backend
pip install mssql-django
Si usa un requirements.txt archivo, reemplace la referencia del paquete:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=1.7
Paso 2: Actualizar el DATABASE ENGINE
En su settings.py, cambie el valor de ENGINE de sql_server.pyodbc a mssql:
# Before
DATABASES = {
"default": {
"ENGINE": "sql_server.pyodbc",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 17 for SQL Server",
},
},
}
# After
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 18 for SQL Server",
},
},
}
Note
mssql-django La versión 1.7 tiene como valor predeterminado ODBC Driver 18. Puede seguir usando el controlador 17 si lo especifica explícitamente en la opción driver.
Paso 3: Actualizar INSTALLED_APPS
Si INSTALLED_APPS hace referencia a sql_server, actualícela:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Paso 4: Comprobar la configuración
Ejecute una comprobación rápida para asegurarse de que el nuevo back-end se conecta correctamente:
python manage.py check
python manage.py showmigrations
Paso 5: Ejecución del conjunto de pruebas
Ejecute el conjunto de pruebas del proyecto para comprobar que todo funciona con el nuevo back-end:
python manage.py test
Cambios importantes que se van a observar
| Area | Cambio |
|---|---|
| Controlador ODBC predeterminado | v1.7 usa ODBC Driver 18 for SQL Server de forma predeterminada, lo que establece Encrypt=yes por defecto (el controlador 17 usaba Encrypt=no por defecto). Las conexiones a servidores con certificados autofirmados o que no son de confianza producen un error a menos que agregue TrustServerCertificate=yes a extra_params. Como alternativa, especifique Driver 17 o instale un certificado de confianza en el servidor. |
return_rows_bulk_insert |
Tiene como valor predeterminado False. Establecer en True para habilitar la devolución de ID tras bulk_create. Debe permanecer en False para tablas con disparadores. Consulte Operaciones masivas con mssql-django. |