mssql-django konfigurationsreferenz

Dieser Artikel ist die vollständige settings.py Konfigurationsreferenz für das mssql-django Django-Datenbank-Backend. Konfigurieren Sie die SQL Server-Konnektivität, indem Sie das DATABASES Wörterbuch in der settings.py Datei Ihres Django-Projekts bearbeiten.

Minimale Konfiguration

Das folgende Beispiel zeigt die minimal erforderliche Konfiguration:

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

Datenbank-Verbindungseinstellungen

Diese Einstellungen konfigurieren deine DATABASES Verbindung. Die meisten sind Standard-Django-Einstellungen; Ausnahmen werden vermerkt:

Setting Typ Description
ENGINE String Muss "mssql" sein.
NAME String Datenbankname. Erforderlich.
HOST String Server-Hostname oder IP-Adresse. Verwenden Sie "server\\instance" das Format für benannte Instanzen.
PORT String Server-Instanz-Port. Leerer String bedeutet Standard-Port.
USER String Datenbank-Benutzername. Falls nicht angegeben, wird Windows Integrated Security verwendet.
PASSWORD String Datenbank-Benutzerpasswort.
AUTOCOMMIT Boolean Auf eingestellt False , um Djangos Transaktionsverwaltung zu deaktivieren. Der Standardwert ist True.
Trusted_Connection String Setze auf "yes" (Standard) die Nutzung von Windows Integrated Security, wenn USER nicht bereitgestellt wird. Wenn USER und PASSWORD beide gesetzt sind, haben diese Zugangsdaten Vorrang und Trusted_Connection werden ignoriert. Setzen Sie die "no" Windows-Authentifizierung explizit aus. Das ist eine mssql-django Erweiterung, kein Standard-Django-Setting.
TOKEN String Zugriffstoken für Microsoft Entra-Authentifizierung (zum Beispiel über azure.identity). Das ist eine mssql-django Erweiterung, kein Standard-Django-Setting.

TEST-Einstellungen

Diese Einstellungen steuern die Testdatenbank, die von Djangos Testrunner verwendet wird:

Setting Typ Description
NAME String Name der Testdatenbank. Standardwert: "test_" + NAME.
COLLATION String Zusammenstellung für die Testdatenbank. Standard: Instanz Standard.
DEPENDENCIES List Erstellungsreihenfolge-Abhängigkeiten der Datenbank.
MIRROR String Alias einer Datenbank zum Spiegeln während des Tests.

Beispiel:

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

OPTIONEN

Das Wörterbuch OPTIONS bietet backend-spezifische Konfigurationen. Fügen Sie diese Einstellungen ins Wörterbuch DATABASES["default"]["OPTIONS"] ein:

Auswahl Typ Vorgabe Description
driver String "ODBC Driver 18 for SQL Server" ODBC-Treiber zum Nutzen. Fällt automatisch auf Treiber 17 zurück, wenn 18 nicht installiert ist.
isolation_level String None Transaktionsisolationsstufe: READ UNCOMMITTED, READ COMMITTED, , REPEATABLE READ, SNAPSHOToder SERIALIZABLE.
dsn String None Heißt DSN. Kann anstelle von HOSTverwendet werden.
host_is_server Boolean False Stell es so ein, dass True es direkt mit FreeTDS verwendetPORTHOST/wird, statt mit einem freetds.conf Dataserver-Namen.
unicode_results Boolean False Aktiviere die unicode_results Funktion von pyodbc.
extra_params String None Zusätzliche ODBC-Parameter im Format "param=value;param=value" . Wird für die Microsoft Entra-Authentifizierung verwendet.
collation String None Kollation für Textfeldsuche (zum Beispiel "Chinese_PRC_CI_AS").
connection_timeout Integer 0 Verbindungszeitzeit in Sekunden (0 = deaktiviert).
connection_retries Integer 5 Anzahl der Verbindungsversuche.
connection_retry_backoff_time Integer 5 Rückzugszeit in Sekunden zwischen den Wiederversuchen.
query_timeout Integer 0 Abfrage-Timeout in Sekunden (0 = deaktiviert).
setencoding / setdecoding List None PyodbcCodierungs-Dekodierungskonfiguration / .
return_rows_bulk_insert Boolean False Erlauben Sie Rückkehrreihen aus dem Bulk-Einsatz. Das muss so sein False , wenn Tabellen Trigger haben.
datefirst Integer 7 Erster Wochentag für SET DATEFIRST. 7ist Sonntag (SQL Server Standard), 1 ist Montag.
driver_needs_utf8 Nur-Präsenz-Option Nicht festgelegt Aktivieren Sie die UTF-8-Codierung für den ODBC-Treiber. Diese Option ist aktiviert, wenn der Schlüssel in OPTIONSvorhanden ist; der Wert selbst wird ignoriert. Typischerweise benötigt man bei FreeTDS oder älteren unixODBC-Konfigurationen, die standardmäßig auf Latin-1 basieren.
driver_charset String None Expliziter Zeichensatz für den ODBC-Treiber (zum Beispiel, "UTF-8"). Verwenden Sie mit driver_needs_utf8 wenn der Fahrer die Kodierung nicht automatisch erkennt.
connection_recovery_interval_msec Float 0.0 Millisekunden, um zwischen den erneuten Versuchen in der Backend-Wiederherstellungsschleife nach einem Netzwerkfehler zu warten. Erhöhe diesen Wert für instabile Netzwerkverbindungen.

Beispiel mit gängigen Optionen:

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-spezifische Einstellungen

Diese Einstellung wird auf Modulebene in settings.py, außerhalb des Wörterbuchs DATABASES , platziert:

Setting Typ Vorgabe Description
DATABASE_CONNECTION_POOLING Boolean True Setze auf Deaktivieren False des Verbindungspoolings von pyodbc.

Beispiel:

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