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:

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

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
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.
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.
host_is_server Boolean False Stel in op True direct te gebruikenPORTHOST/met FreeTDS in plaats van een freetds.conf dataservernaam.
unicode_results Boolean False Activeer de unicode_results functie van pyodbc.
extra_params String None Extra ODBC-parameters in "param=value;param=value" formaat. Gebruikt voor Microsoft Entra-authenticatie.
collation String None Verzameling voor tekstveldopzoekingen (bijvoorbeeld "Chinese_PRC_CI_AS").
connection_timeout Integer 0 Verbindingstime-out in seconden (0 = uitgeschakeld).
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 Pyodbccoderingsdecodeerconfiguratie / .
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 op False om de verbindingspooling van pyodbc uit te schakelen.

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 pyodbc's connection pooling
DATABASE_CONNECTION_POOLING = False