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 tillhandahåller en Django-databasbackend för SQL Server med ett uppdaterat paketnamn, motoridentifierare och stöd för nyare Django-versioner. Pyodbc-drivrutinsvägen är fortfarande standard i mssql-django 2.0, och varje databasalias kan välja att använda mssql-python-drivrutinen. För mer information, se Välj databasdrivrutinen för mssql-django.
| 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 | 5.2, 6.0, 6.1 |
| 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>=2.0
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
Standard-pyodbc-vägen använder Microsoft ODBC Driver 18 för SQL Server. Du kan fortsätta använda Drivrutin 17 på pyodbc-vägen genom att specificera det explicit i alternativet driver . mssql-python-sökvägen ignorerar 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 |
|---|---|
| Standarddrivrutin för databaser |
mssql-django 2.0 behåller pyodbc som standarddrivrutin för databasen. För att använda mssql-python-vägen, ställ "python_driver": "mssql_python" in i aliasens OPTIONS ordbok. |
| Standarddrivrutin för ODBC på pyodbc-vägen | Pyodbc-banan använder ODBC Driver 18 for SQL Server, vilket sätter Encrypt=yes 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 anger du drivrutin 17 i sökvägen till pyodbc eller installerar 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. |