Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt uitgelegd hoe u een Django-project migreert van het django-mssql-backend pakket (dat de sql_server.pyodbc engine heeft gebruikt) naar het mssql-django pakket.
Overview
Het mssql-django pakket is de opvolger van django-mssql-backend. Het biedt een Django-database-backend voor SQL Server met een bijgewerkte pakketnaam, engine-identificatie en ondersteuning voor nieuwere Django-versies. Het pad van het pyodbc-stuurprogramma blijft de standaard in mssql-django 2.0 en elke database-alias kan kiezen voor het mssql-python-stuurprogramma. Voor meer informatie, zie Selecteer de databasedriver voor mssql-django.
| Eigenschap | django-mssql-backend | mssql-django |
|---|---|---|
| Naam van het pakket | django-mssql-backend |
mssql-django |
| ENGINE | sql_server.pyodbc |
mssql |
| Django-ondersteuning | 2.2, 3.0, 3.1 | 5.2, 6.0, 6.1 |
| Onderhouden door | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Stap 1: het Python-pakket bijwerken
Verwijder het oude pakket en installeer het nieuwe pakket:
pip uninstall django-mssql-backend
pip install mssql-django
Als u een requirements.txt bestand gebruikt, vervangt u de pakketreferentie:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=2.0
Stap 2: Werk de DATABASE ENGINE bij
Wijzig in uw settings.py de waarde van ENGINE van sql_server.pyodbc in 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
Het standaard pyodbc-pad gebruikt Microsoft ODBC Driver 18 voor SQL Server. Je kunt Driver 17 blijven gebruiken op het pyodbc-pad door het expliciet in de driver optie te specificeren. Het mssql-python-pad negeert de driver optie.
Stap 3: INSTALLED_APPS bijwerken
Als uw INSTALLED_APPS verwijst naar sql_server, werkt u deze bij:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Stap 4: Configuratie controleren
Voer een snelle verificatie uit om ervoor te zorgen dat de nieuwe back-end verbinding maakt:
python manage.py check
python manage.py showmigrations
Stap 5: Uw testpakket uitvoeren
Voer het testpakket van uw project uit om te controleren of alles werkt met de nieuwe back-end:
python manage.py test
Belangrijke wijzigingen om op te letten
| Area | Change |
|---|---|
| Standaard database-driver |
mssql-django 2.0 houdt pyodbc als standaard databasedriver. Om het mssql-python-pad te gebruiken, stel je "python_driver": "mssql_python" in in de OPTIONS-dictionary van de alias. |
| Standaard ODBC-driver op het pyodbc-pad | Het pyodbc-pad gebruikt ODBC Driver 18 for SQL Server, waarmee standaard Encrypt=yes wordt ingesteld. Verbindingen met servers met zelfondertekende of niet-vertrouwde certificaten mislukken tenzij u toevoegt TrustServerCertificate=yes aan extra_params. Alternatief kun je Driver 17 specificeren op het pyodbc-pad of een vertrouwd certificaat op de server installeren. |
return_rows_bulk_insert |
Wordt standaard ingesteld op False. Instellen op True om het teruggeven van ID's na bulk_create in te schakelen. Moet False blijven voor tabellen met triggers. Zie Bulkbewerkingen met mssql-django. |