Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
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. |