MSSQL-django konfigurációs referencia

Ez a cikk a Django adatbázis háttérrendszerének teljes settings.py konfigurációs hivatkozása mssql-django . Konfiguráld az SQL Server kapcsolatot úgy, hogy szerkeszted a Django projekt settings.py fájljában lévő DATABASES szótárt.

Minimális konfiguráció

Az alábbi példa mutatja a minimális szükséges konfigurációt:

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

Adatbázis-kapcsolati beállítások

Ezek a beállítások konfigurálják a DATABASES kapcsolatodat. A legtöbb szabványos Django világ; Kivételek szerepelnek:

Setting Típus Description
ENGINE String Kell lennie "mssql".
NAME String Adatbázis neve. Szükséges.
HOST String Szerver hosztnév vagy IP-cím. Használj "server\\instance" formátumot a nevelt példányokhoz.
PORT String Szerver példány port. Az üres string alapértelmezett portot jelent.
USER String Adatbázis felhasználóneve. Ha nincs megadva, akkor a Windows Integrált Biztonságot használják.
PASSWORD String Adatbázis felhasználói jelszó.
AUTOCOMMIT logikai Beállítás False , hogy Django tranzakciókezelését letiltsd. Az alapértelmezett érték True.
Trusted_Connection String Állítsd "yes" be (alapértelmezett) módra, hogy használd a Windows Integrált Biztonságot, ha USER nincs megadva. Ha USER és PASSWORD mindkettő be van állítva, ezek a hitelesítések elsőbbséget vesznek fel, és Trusted_Connection figyelmen kívül hagyják. Állítsd be a "no" Windows authentication explicit letiltására. Ez egy mssql-django kiterjesztés, nem egy szokásos Django beállítás.
TOKEN String Hozzáférési token a Microsoft Entra hitelesítéshez (például a ).azure.identity Ez egy mssql-django kiterjesztés, nem egy szokásos Django beállítás.

TESZT beállítások

Ezek a beállítások irányítják a Django tesztfutója által használt tesztadatbázist:

Setting Típus Description
NAME String Tesztadatbázis név. Alapértelmezett: "test_" + NAME.
COLLATION String A tesztadatbázis összeállítása. Alapértelmezett: instance default.
DEPENDENCIES Lista Az adatbázis létrehozási sorrendi függőségei.
MIRROR String Egy adatbázis alias-a, amelyet tesztelés közben tükrözni lehet.

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

LEHETŐSÉGEK

A OPTIONS szótár backend-specifikus konfigurációt biztosít. Helyezd DATABASES["default"]["OPTIONS"] el ezeket a beállításokat a szótárban:

Option Típus Alapértelmezett Description
driver String "ODBC Driver 18 for SQL Server" ODBC illezőprogramot kell használni. Automatikusan visszakerül a 17-es meghajtóra, ha a 18-as nincs telepítve.
isolation_level String None Tranzakcióelkülönítési szint: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READSNAPSHOTvagy SERIALIZABLE.
dsn String None DSN-nek hívják. Használható helyette.HOST
host_is_server logikai False Úgy állítom, hogy True közvetlenül a FreeTDS-szel használjamPORTHOST/az adatszerver freetds.conf név helyett.
unicode_results logikai False Aktiváld a unicode_results pyodbc funkcióját.
extra_params String None További ODBC paraméterek formátumban "param=value;param=value" . Microsoft Entra hitelesítéshez használva.
collation String None Szövegmező lekérdezésekhez való összeállítás (például, "Chinese_PRC_CI_AS").
connection_timeout Integer 0 Kapcsolat időkorlátja másodpercekben (0 = letiltva).
connection_retries Integer 5 A kapcsolat újrapróbálkozásának száma.
connection_retry_backoff_time Integer 5 A visszalépési idő másodpercekben a próbálkozások között.
query_timeout Integer 0 Lekérdezés időtúllépése másodpercekben (0 = letiltva).
setencoding / setdecoding Lista None PyoDBC kódolási / dekódolás.
return_rows_bulk_insert logikai False Engedd meg a sorok visszatérését a tömeges behelyezésből. Biztosan van False , ha a tábláknak vannak triggerjei.
datefirst Integer 7 A hét első napja .SET DATEFIRST 7vasárnap (SQL Server alapértelmezett), 1 hétfő.
driver_needs_utf8 Csak jelenlét-opció Nincs beállítva Engedélyezze az UTF-8 kódolást az ODBC illezőgéphez. Ez az opció akkor van engedélyezve, ha a kulcs jelen van ; OPTIONSaz értéket figyelmen kívül hagyjuk. Általában FreeTDS vagy régebbi unixODBC konfigurációknál szükséges, amelyek alapértelmezetként Latin-1-et használnak.
driver_charset String None Explicit karakterkészlet az ODBC illezőprogramhoz (például "UTF-8"). Használd akkor is driver_needs_utf8 , amikor a meghajtó nem érzékeli automatikusan a kódolást.
connection_recovery_interval_msec Lebegés 0.0 Milliszekundumok várakozásra a háttérrendszer kapcsolat helyreállítási ciklusában hálózati hiba után. Növeld ezt az értéket instabil hálózati kapcsolatok esetén.

Példa a gyakori opciókkal:

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-specifikus beállítások

Ez a beállítás a modul szintjén van a settings.pyszótáron kívül DATABASES :

Setting Típus Alapértelmezett Description
DATABASE_CONNECTION_POOLING logikai True Állítsd be, False hogy letiltsd a pyodbc kapcsolati poolingját.

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