MSSQL-Django Configuration Reference

Tento článek je kompletní settings.py konfigurační referencí pro mssql-django databázový backend Django. Konfigurujte připojení k SQL Server úpravou slovníku DATABASES ve vašem souboru projektu settings.py Django.

Minimální konfigurace

Následující příklad ukazuje minimální požadovanou konfiguraci:

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

Nastavení připojení k databázi

Tato nastavení konfigurují DATABASES vaše připojení. Většina jsou standardní nastavení Django; Jsou uvedeny výjimky:

Setting Typ Description
ENGINE String Musí být "mssql".
NAME String Název databáze. Povinné.
HOST String Název serveru nebo IP adresa. Používejte "server\\instance" formát pro pojmenované instance.
PORT String Port instance serveru. Prázdný řetězec znamená výchozí port.
USER String Uživatelské jméno databáze. Pokud ne, používá se Windows Integrated Security.
PASSWORD String Uživatelské heslo k databázi.
AUTOCOMMIT logický Nastavte na False deaktivovat správu transakcí v Django. Výchozí hodnota je True.
Trusted_Connection String Nastavte ("yes"výchozí) na Windows Integrated Security, když USER není k dispozici. Když USER jsou nastaveny obě PASSWORD a , tyto přihlašovací údaje mají přednost a jsou ignorovány Trusted_Connection . Nastavte tak, "no" aby bylo Windows authentication explicitně zakázáno. Je to rozšíření mssql-django , ne standardní nastavení Django.
TOKEN String Přístupový token pro autentizaci Microsoft Entra (například přes azure.identity). Je to rozšíření mssql-django , ne standardní nastavení Django.

TESTOVÁ nastavení

Tato nastavení řídí testovací databázi používanou testovacím runnerem Django:

Setting Typ Description
NAME String Název databáze testu. Výchozí hodnota: "test_" + NAME.
COLLATION String Kolace pro testovací databázi. Výchozí: výchozí instance.
DEPENDENCIES List Závislosti databáze v pořadí vzniku.
MIRROR String Alias databáze pro zrcadlení během testování.

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

MOŽNOSTI

Slovník OPTIONS poskytuje konfiguraci specifickou pro backend. Vložte tato nastavení do slovníku DATABASES["default"]["OPTIONS"] :

Option Typ Default Description
driver String "ODBC Driver 18 for SQL Server" Použít ODBC ovladač. Automaticky se vrátí na ovladač 17, pokud není nainstalován 18.
isolation_level String None Úroveň izolace transakcí: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SNAPSHOTnebo SERIALIZABLE.
dsn String None Jmenuje se DSN. Lze použít místo .HOST
host_is_server logický False Nastavte na použitíPORTHOST/přímo True s FreeTDS místo názvu dataserveru.freetds.conf
unicode_results logický False Aktivujte funkci pyodbc unicode_results .
extra_params String None Další parametry ODBC ve formátu "param=value;param=value" . Používá se pro autentizaci Microsoft Entra.
collation String None Třídění pro vyhledávání textových polí (například "Chinese_PRC_CI_AS").
connection_timeout Integer 0 Vypršení připojení během několika sekund (0 = zakázáno).
connection_retries Integer 5 Počet pokusů o opětovné připojení k připojení.
connection_retry_backoff_time Integer 5 Čas na odstoupení během několika sekund mezi pokusy.
query_timeout Integer 0 Časový limit dotazu během několika sekund (0 = zakázáno).
setencoding / setdecoding List None Konfiguracekódovánípyodbc / .
return_rows_bulk_insert logický False Povolte vracející řádky z hromadné vložky. Musí to tak být False , pokud stoly mají spouštěče.
datefirst Integer 7 První den v týdnu pro SET DATEFIRST. 7je neděle (výchozí SQL Server), 1 je pondělí.
driver_needs_utf8 Možnost pouze přítomnosti Nenastaveno Povolte kódování UTF-8 pro ovladač ODBC. Tato možnost je aktivována, když je klíč přítomen v ; OPTIONSsamotná hodnota je ignorována. Obvykle je potřeba u FreeTDS nebo starších unixODBC konfigurací, které výchozí jsou na Latin-1.
driver_charset String None Explicitní znaková sada pro ovladač ODBC (například "UTF-8"). Použijte s tím driver_needs_utf8 , když ovladač automaticky nedetekuje kódování.
connection_recovery_interval_msec Plovat 0.0 Milisekundy na počkání mezi pokusy o opakování v backendové smyčce obnovy připojení po chybě v síti. Zvyšte tuto hodnotu pro nestabilní síťové linky.

Příklad s běžnými možnostmi:

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

Nastavení specifická pro backend

Toto nastavení je umístěno na úrovni modulu v , settings.pymimo slovník:DATABASES

Setting Typ Default Description
DATABASE_CONNECTION_POOLING logický True Nastavte na False vypnutí poolování připojení v pyodbc.

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