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 verwendetHOST/PORTwird, 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). Verwenden Sie mindestens 60 für Azure SQL-Datenbank serverlos mit aktivierter automatischer Pause. Eine automatisch pausierte Datenbank wird beim ersten Verbindungsversuch fortgesetzt, und dieser Versuch kann mit dem Fehler 40613 fehlschlagen, während die Datenbank fortgesetzt wird, sodass die Anwendung einen neuen Versuch machen muss. Weitere Informationen finden Sie unter Auto-pause und Auto-resume.
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