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 stellt weiterhin ein Django-Datenbank-Back-End für SQL Server mithilfe von Pyodbc bereit, aber mit einem aktualisierten Paketnamen, Modulbezeichner und Unterstützung für neuere Django-Versionen.
| 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 | 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0 |
| 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>=1.7
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
mssql-django v1.7 verwendet standardmäßig den ODBC-Treiber 18. Sie können Driver 17 weiterhin verwenden, indem Sie ihn explizit in der driver Option angeben.
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
Inkompatible Änderungen, auf die Sie achten sollten
| Area | Veränderung |
|---|---|
| Standard-ODBC-Treiber | v1.7 ist standardmäßig auf ODBC Driver 18 for SQL Server festgelegt, wodurch Encrypt=yes standardmäßig festgelegt wird (Treiber 17 war standardmäßig auf Encrypt=no festgelegt). 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 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 False für Tabellen mit Triggern beibehalten werden. Siehe Stapelverarbeitungen mit mssql-django. |