Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Sie ein Django-Projekt aus dem django-mssql-backend Paket (das das sql_server.pyodbc Modul verwendet hat) in das mssql-django Paket migrieren.
Übersicht
Das mssql-django Paket ist der Nachfolger von django-mssql-backend. Es bietet ein Django-Datenbank-Backend für SQL Server mit aktualisiertem Paketname, Engine-Kennung und Unterstützung neuerer Django-Versionen. Der Pfad des pyodbc-Treibers bleibt in mssql-django Version 2.0 der Standard, und jeder Datenbankalias kann sich für den mssql-python-Treiber entscheiden. Weitere Informationen finden Sie unter Select the database driver for mssql-django.
| Merkmal | django-mssql-backend | mssql-django |
|---|---|---|
| Paketname | django-mssql-backend |
mssql-django |
| MOTOR | sql_server.pyodbc |
mssql |
| Django-Support | 2.2, 3.0, 3.1 | 5.2, 6.0, 6.1 |
| Gepflegt von | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Schritt 1: Aktualisieren des Python-Pakets
Deinstallieren Sie das alte Paket, und installieren Sie das neue Paket:
pip uninstall django-mssql-backend
pip install mssql-django
Wenn Sie eine requirements.txt Datei verwenden, ersetzen Sie den Paketverweis:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=2.0
Schritt 2: Aktualisieren Sie die DATABASE ENGINE
Ändern Sie in Ihrem settings.py den ENGINE-Wert von sql_server.pyodbc auf 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
Der Standardpfad von pyodbc verwendet Microsoft ODBC Driver 18 für SQL Server. Du kannst Treiber 17 weiterhin auf dem pyodbc-Pfad verwenden, indem du es explizit in der driver Option angibst. Der mssql-python-Pfad ignoriert die driver Option.
Schritt 3: Aktualisieren INSTALLED_APPS
Wenn Ihre INSTALLED_APPS auf sql_server verweist, aktualisieren Sie sie:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Schritt 4: Überprüfen der Konfiguration
Führen Sie eine schnelle Überprüfung aus, um sicherzustellen, dass das neue Back-End erfolgreich eine Verbindung herstellt:
python manage.py check
python manage.py showmigrations
Schritt 5: Führen Sie Ihre Test-Suite aus
Führen Sie die Testsuite Ihres Projekts aus, um zu überprüfen, ob alles mit dem neuen Back-End funktioniert:
python manage.py test
Wichtige Änderungen, auf die Sie achten sollten
| Area | Veränderung |
|---|---|
| Standard-Datenbanktreiber |
mssql-django 2.0 behält pyodbc als Standard-Datenbanktreiber. Um den mssql-python-Pfad zu verwenden, legen Sie "python_driver": "mssql_python" im OPTIONS-Wörterbuch des Alias fest. |
| Standard-ODBC-Treiber im pyodbc-Pfad | Der pyodbc-Pfad verwendet ODBC Driver 18 for SQL Server, wodurch Encrypt=yes standardmäßig festgelegt wird. Verbindungen zu Servern mit selbstsignierten oder nicht vertrauenswürdigen Zertifikaten schlagen fehl, es sei denn, Sie fügen TrustServerCertificate=yes zu extra_params hinzu. Alternativ können Sie Treiber 17 auf dem Pfad Pyodbc angeben oder ein vertrauenswürdiges Zertifikat auf dem Server installieren. |
return_rows_bulk_insert |
Wird standardmäßig auf False festgelegt. Legen Sie den Wert auf True fest, um die Rückgabe von IDs nach bulk_create zu aktivieren. Muss bei Tabellen mit Triggern False bleiben. Siehe Stapelverarbeitungen mit mssql-django. |