mssql-django configuration reference

Dit artikel is de volledige settings.py configuratiereferentie voor de mssql-django Django-database-backend. Configureer de SQL Server-connectiviteit door het DATABASES woordenboek in het settings.py bestand van je Django-project te bewerken.

Minimale configuratie

Het volgende voorbeeld toont de minimaal vereiste configuratie voor het standaardpad pyodbc :

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",
        },
    },
}

Om de alias uit mssql-python te voeren, zet python_driver en laat driverje . Het mssql-python pad negeert driver:

DATABASES = {
    "default": {
        "ENGINE": "mssql",
        "NAME": "<database>",
        "USER": "<user_id>",
        "PASSWORD": "<password>",
        "HOST": "<server>",
        "PORT": "1433",
        "OPTIONS": {
            "python_driver": "mssql_python",
        },
    },
}

ENGINE Blijft "mssql" op beide paden. Aliassen in hetzelfde project kunnen verschillende drivers gebruiken. Voor de volledige lijst van gedragsverschillen, zie Selecteer de databasedriver voor mssql-django.

Tenzij anders vermeld, tonen de voorbeelden in de rest van dit artikel het standaardpad pyodbc .

Database-verbindingsinstellingen

Deze instellingen configureren je DATABASES verbinding. De meeste zijn standaard Django-instellingen; Uitzonderingen worden genoteerd:

Instelling Type Description
ENGINE String Moet "mssql"zijn.
NAME String Databasenaam. Verplicht.
HOST String Serverhostnaam of IP-adres. Gebruik "server\\instance" het formaat voor benoemde instanties.
PORT String Server-instantieport. Lege string betekent standaardpoort.
USER String Gebruikersnaam van database. Als dat niet wordt gegeven, wordt Windows Integrated Security gebruikt.
PASSWORD String Wachtwoord van databasegebruiker.
AUTOCOMMIT Boolean Instellen op False om het transactiebeheer van Django uit te schakelen. De standaardwaarde is True.
Trusted_Connection String Stel in op "yes" (standaard) om Windows Integrated Security te gebruiken wanneer USER deze niet beschikbaar is. Wanneer USER en PASSWORD beide zijn ingesteld, krijgen die referenties voorrang en Trusted_Connection worden ze genegeerd. Stel in op "no" om Windows authentication expliciet uit te schakelen. Dit is een mssql-django uitbreiding, geen standaard Django-instelling.
TOKEN String Toegangstoken voor Microsoft Entra-authenticatie (bijvoorbeeld via azure.identity). Dit is een mssql-django uitbreiding, geen standaard Django-instelling.

TESTINSTELLINGEN

Deze instellingen beheren de testdatabase die door Django's testrunner wordt gebruikt:

Instelling Type Description
NAME String Testdatabasenaam. Standaard: "test_" + NAME.
COLLATION String Verzameling voor de testdatabase. Standaard: instantie standaard.
DEPENDENCIES List Afhankelijkheden van de opschepingsvolgorde van de database.
MIRROR String Alias van een database om te spiegelen tijdens testen.

Example:

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",
        },
        "TEST": {
            "NAME": "test_mydb",
            "COLLATION": "SQL_Latin1_General_CP1_CI_AS",
        },
    },
}

OPTIES

Het OPTIONS woordenboek biedt backend-specifieke configuratie. Plaats deze instellingen in het DATABASES["default"]["OPTIONS"] woordenboek:

Option Type Default Description
python_driver String Niet ingesteld Stel in om "mssql_python" deze alias via de mssql-python driver te verbinden. Niet ingesteld of "pyodbc" behouden de standaarddriver pyodbc . Zie Selecteer de databasedriver voor mssql-django.
driver String "ODBC Driver 18 for SQL Server" ODBC-driver om te gebruiken. Valt automatisch terug op Driver 17 als 18 niet geïnstalleerd is. Genegeerd op het mssql-python pad.
isolation_level String None Niveau van transactieisolatie: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SNAPSHOT, of SERIALIZABLE.
dsn String None Genoemd DSN. Kan worden gebruikt in plaats van HOST. Genegeerd op het mssql-python pad.
host_is_server Boolean False Stel in op True direct te gebruikenHOST/PORTmet FreeTDS in plaats van een freetds.conf dataservernaam. Genegeerd op het mssql-python pad.
unicode_results Boolean False Activeer de unicode_results functie van pyodbc. Genegeerd op het mssql-python pad.
extra_params String None Extra parameters van de verbindingsreeks in "param=value;param=value" formaat. Gebruikt voor Microsoft Entra-authenticatie. Het mssql-python pad valideert deze tegen een toestemmingslijst.
collation String None Verzameling voor tekstveldopzoekingen (bijvoorbeeld "Chinese_PRC_CI_AS").
connection_timeout Integer 0 Verbindingstime-out in seconden (0 = uitgeschakeld). Gebruik minstens 60 voor Azure SQL Database serverless met auto-pauze ingeschakeld. Een automatisch gepauzeerde database wordt hervat bij de eerste verbindingspoging, en die poging kan mislukken met foutmelding 40613 terwijl de database wordt hervat, dus de applicatie moet het opnieuw proberen. Raadpleeg Automatisch onderbreken en automatisch hervatten voor meer informatie.
connection_retries Integer 5 Aantal pogingen tot opnieuw verbinden.
connection_retry_backoff_time Integer 5 Tijd om terug te trekken in seconden tussen herpogingen.
query_timeout Integer 0 Query-timeout binnen seconden (0 = uitgeschakeld).
setencoding / setdecoding List None De coderings- en decoderconfiguratie werd doorgegeven aan de verbindingsmethoden van de geselecteerde driver. Elke setdecoding invoer heeft een sqltype sleutel nodig op beide paden, en dezelfde invoer werkt op beide drivers. mssql-python accepteert -99 voor SQL_WMETADATA, en pyodbc wijst het af. Zie de pyodbc-codering en -decodering .
return_rows_bulk_insert Boolean False Laat het terugkeren van rijen uit bulk insert toe. Dat moet wel als False tabellen triggers hebben.
datefirst Integer 7 Eerste dag van de week voor SET DATEFIRST. 7is zondag (standaard SQL Server), 1 is maandag.
driver_needs_utf8 Alleen aanwezigheidsoptie Niet ingesteld Schakel UTF-8-codering in voor de ODBC-driver. Deze optie wordt ingeschakeld wanneer de sleutel aanwezig is in OPTIONS; de waarde zelf wordt genegeerd. Meestal nodig bij FreeTDS of oudere unixODBC-configuraties die standaard op Latin-1 draaien.
driver_charset String None Expliciete tekenset voor de ODBC-driver (bijvoorbeeld "UTF-8"). Gebruik wanneer driver_needs_utf8 de driver de codering niet automatisch detecteert.
connection_recovery_interval_msec zweven 0.0 Milliseconden om te wachten tussen herpogingen in de backend-herstelloop na een netwerkfout. Verhoog deze waarde voor onstabiele netwerkverbindingen.

Voorbeeld met veelvoorkomende opties:

DATABASES = {
    "default": {
        "ENGINE": "mssql",
        "NAME": "<your-database>",
        "USER": "<your-username>",
        "PASSWORD": "<your-password>",
        "HOST": "<your-server>.database.windows.net",
        "PORT": "1433",
        "OPTIONS": {
            "driver": "ODBC Driver 18 for SQL Server",
            "extra_params": "Encrypt=yes",
            "isolation_level": "READ COMMITTED",
            "connection_timeout": 30,
            "connection_retries": 3,
            "connection_retry_backoff_time": 5,
            "query_timeout": 60,
        },
    },
}

Backend-specifieke instellingen

Deze instelling wordt geplaatst op moduleniveau in settings.py, buiten het DATABASES woordenboek:

Instelling Type Default Description
DATABASE_CONNECTION_POOLING Boolean True Stel in om False driver-level connection pooling uit te schakelen. Van toepassing op zowel pyodbc als mssql-python.

Example:

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",
        },
    },
}

# Set this to False to disable driver-level connection pooling
DATABASE_CONNECTION_POOLING = False