Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du migrerar ett Django-projekt från django-mssql-backend paketet (som använde sql_server.pyodbc motorn) till mssql-django paketet.
Overview
Paketet mssql-django är efterföljare till django-mssql-backend. Den fortsätter att tillhandahålla en Django-databasserverdel för SQL Server med pyodbc, men med ett uppdaterat paketnamn, motoridentifierare och stöd för nyare Django-versioner.
| Feature | django-mssql-backend | mssql-django |
|---|---|---|
| Paketnamn | django-mssql-backend |
mssql-django |
| MOTOR | sql_server.pyodbc |
mssql |
| Stöd för Django | 2.2, 3.0, 3.1 | 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0 |
| Underhålls av | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Steg 1: Uppdatera Python-paketet
Avinstallera det gamla paketet och installera det nya:
pip uninstall django-mssql-backend
pip install mssql-django
Om du använder en requirements.txt fil ersätter du paketreferensen:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=1.7
Steg 2: Uppdatera DATABASE MOTORN
I din settings.pyändrar du ENGINE värdet från sql_server.pyodbc till 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 har som standard ODBC Driver 18. Du kan fortsätta att använda drivrutin 17 genom att uttryckligen ange den i alternativet driver .
Steg 3: Uppdatera INSTALLED_APPS
Om din INSTALLED_APPS refererar till sql_server, uppdatera den:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Steg 4: Verifiera konfigurationen
Kör en snabb verifiering för att säkerställa att den nya serverdelen ansluter:
python manage.py check
python manage.py showmigrations
Steg 5: Kör testpaketet
Kör projektets testsvit för att kontrollera att allt fungerar med den nya serverdelen:
python manage.py test
Icke-bakåtkompatibla ändringar att se upp med
| Area | Change |
|---|---|
| ODBC-standarddrivrutin | v1.7 har standardvärdet ODBC Driver 18 for SQL Server, vilket innebär att Encrypt=yes används som standard (Driver 17 hade Encrypt=no som standard). Anslutningar till servrar med självsignerade eller ej betrodda certifikat misslyckas om du inte lägger till TrustServerCertificate=yes i extra_params. Alternativt kan du ange Driver 17 eller installera ett betrott certifikat på servern. |
return_rows_bulk_insert |
Standardinställningen är False. Ställ in på True för att aktivera att ID:n returneras efter bulk_create. Måste finnas kvar False för tabeller med utlösare. Se Massoperationer med mssql-django. |