Migrera från django-mssql-backend till mssql-django

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.