Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment migrer un projet Django du django-mssql-backend package (qui a utilisé le sql_server.pyodbc moteur) vers le mssql-django package.
Overview
Le mssql-django package est le successeur de django-mssql-backend. Il fournit un backend de base de données Django pour SQL Server avec un nom de paquet mis à jour, un identifiant moteur et un support pour les versions plus récentes de Django. Le chemin du pilote pyodbc reste le choix par défaut dans mssql-django la version 2.0, et chaque alias de base de données peut opter pour le pilote mssql-python. Pour plus d’informations, voir Sélectionner le pilote de base de données pour mssql-django.
| Fonctionnalité | django-mssql-backend | mssql-django |
|---|---|---|
| Nom du package | django-mssql-backend |
mssql-django |
| MOTEUR | sql_server.pyodbc |
mssql |
| Prise en charge de Django | 2.2, 3.0, 3.1 | 5.2, 6.0, 6.1 |
| Géré par | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Étape 1 : Mettre à jour le package Python
Désinstallez l’ancien package et installez le nouveau :
pip uninstall django-mssql-backend
pip install mssql-django
Si vous utilisez un requirements.txt fichier, remplacez la référence du package :
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=2.0
Étape 2 : Mettre à jour le DATABASE MOTEUR
Dans votre settings.py, remplacez la valeur ENGINE de sql_server.pyodbc par 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
Le chemin pyodbc par défaut utilise le pilote ODBC 18 de Microsoft pour SQL Server. Vous pouvez continuer à utiliser Driver 17 sur le chemin pyodbc en l’indiquant explicitement dans l’option driver. Le chemin mssql-python ignore cette driver option.
Étape 3 : Mettre à jour INSTALLED_APPS
Si votre INSTALLED_APPS fait référence à sql_server, mettez-le à jour :
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Étape 4 : Vérifier la configuration
Exécutez une vérification rapide pour vous assurer que le nouveau serveur principal se connecte correctement :
python manage.py check
python manage.py showmigrations
Étape 5 : Exécuter votre suite de tests
Exécutez la suite de tests de votre projet pour vérifier que tout fonctionne avec le nouveau back-end :
python manage.py test
Changements cassants à surveiller
| Area | Change |
|---|---|
| Pilote de base de données par défaut |
mssql-django La version 2.0 conserve pyodbc comme pilote de base de données par défaut. Pour utiliser le chemin mssql-python, définissez "python_driver": "mssql_python" dans le dictionnaire de l’alias OPTIONS . |
| Pilote ODBC par défaut sur le chemin pyodbc | Le chemin pyodbc utilise ODBC Driver 18 for SQL Server, qui définit Encrypt=yes par défaut. Les connexions aux serveurs avec des certificats auto-signés ou non approuvés échouent, sauf si vous ajoutez TrustServerCertificate=yes à extra_params. Sinon, spécifiez le pilote 17 sur le chemin pyodbc ou installez un certificat de confiance sur le serveur. |
return_rows_bulk_insert |
La valeur par défaut est False. Définissez sur True pour activer le renvoi des ID après bulk_create. Doit rester False pour les tables avec des déclencheurs. Consultez les opérations en bloc avec mssql-django. |