MSSQL-django konfigürasyon referansı

Bu makale, Django veritabanı mssql-django arka uçunun tam settings.py yapılandırma referansıdır. Django projenizin settings.py dosyasındaki sözlüğü düzenleyerek DATABASES SQL Server bağlantısını yapılandırın.

En az yapılandırma

Aşağıdaki örnek, minimum gerekli yapılandırmayı gösterir:

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

Veritabanı bağlantı ayarları

Bu ayarlar bağlantınızı DATABASES ayarlar. Çoğu standart Django ayarlarıdır; İstisnalar belirtilmektedir:

Setting Type Description
ENGINE String olmalıdır "mssql".
NAME String Veritabanı adı. Gerekli.
HOST String Sunucu ana adı veya IP adresi. Adlandırılmış örnekler için format kullanın "server\\instance" .
PORT String Sunucu örneği portu. Boş dize, varsayılan port anlamına gelir.
USER String Veritabanı kullanıcı adı. Verilmezse, Windows Entegre Güvenlik kullanılır.
PASSWORD String Veritabanı kullanıcı şifresi.
AUTOCOMMIT Boolean Django'nun işlem yönetimini devre dışı bırakmak için ayarlandı False . Varsayılan True değeridir.
Trusted_Connection String "yes" Windows Entegre Güvenliği sağlanmadığında USER (varsayılan) olarak ayarlayın. USER Her ikisi de ayarlandığındaPASSWORD, bu kimlik bilgileri öncelikli olur ve Trusted_Connection göz ardı edilir. Windows authentication'ı açıkça devre dışı bırakmak için ayarlandı"no". Bu bir mssql-django uzantı, standart bir Django ortamı değil.
TOKEN String Microsoft Entra doğrulaması için erişim tokenı (örneğin, aracılığıylaazure.identity). Bu bir mssql-django uzantı, standart bir Django ortamı değil.

TEST ayarları

Bu ayarlar, Django'nun test koşucusu tarafından kullanılan test veritabanını kontrol eder:

Setting Type Description
NAME String Test veritabanı adı. Varsayılan: "test_" + NAME.
COLLATION String Test veritabanı için derleme. Varsayılan: örnek varsayılan.
DEPENDENCIES Liste Veritabanının oluşturulma sırası bağımlılıkları.
MIRROR String Test sırasında yansıtmak için bir veritabanı takma adı var.

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

SEÇENEKLER

Sözlük OPTIONS , arka uç spesifik yapılandırma sağlar. Bu ayarları sözlüğe DATABASES["default"]["OPTIONS"] yerleştirin:

Option Type Varsayılan Description
driver String "ODBC Driver 18 for SQL Server" ODBC sürücüsü kullanmak için. 18 yüklü değilse otomatik olarak Driver 17'ye geri dönüyor.
isolation_level String None İşlem yalıtım düzeyi: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SNAPSHOTveya SERIALIZABLE.
dsn String None DSN olarak adlandırıldı. yerine HOSTkullanılabilir.
host_is_server Boolean False Veri sunucusu adı yerine freetds.conf doğrudan FreeTDS ile kullanmak/PORTHOSTüzere ayarlandıTrue.
unicode_results Boolean False pyodbc'nin özelliğini unicode_results etkinleştir.
extra_params String None Ek ODBC parametreleri formatta "param=value;param=value" . Microsoft Entra kimlik doğrulaması için kullanıldı.
collation String None Metin alanı araştırmaları için derleme (örneğin, "Chinese_PRC_CI_AS").
connection_timeout Integer 0 Bağlantı süresi saniyeler içinde (0 = devre dışı bırakıldı).
connection_retries Integer 5 Bağlantı yeniden deneme sayısı.
connection_retry_backoff_time Integer 5 Denemeler arasındaki geri çekilme süresi saniyelerde.
query_timeout Integer 0 Sorgu zaman aşımını saniyeler cinsinden (0 = devre dışı bırakıldı).
setencoding / setdecoding Liste None PyoDBC kodlama / çözme yapılandırması.
return_rows_bulk_insert Boolean False Toplu yerleştirmeden geri sıraların döndürülmesine izin verin. Tablolarda tetikleyiciler varsa olmalı False .
datefirst Integer 7 Haftanın ilk günü .SET DATEFIRST 7Pazar (SQL Server varsayılan), 1 Pazartesi.
driver_needs_utf8 Sadece varlık seçeneği Ayarlanmadı ODBC sürücüsü için UTF-8 kodlamasını etkinleştirin. Bu seçenek, anahtar bulunduğunda OPTIONSetkinleştirilir; değer kendisi göz ardı edilir. Genellikle FreeTDS veya varsayılan olarak Latin-1 olan eski unixODBC yapılandırmalarında gereklidir.
driver_charset String None ODBC sürücüsü için açık karakter seti (örneğin, "UTF-8"). Sürücü otomatik kodlama algılamadığında kullanın driver_needs_utf8 .
connection_recovery_interval_msec Float 0.0 Ağ hatasından sonra arka uçun bağlantı kurtarma döngüsünde tekrar deneme girişimleri arasında milisaniyeler beklemek için milisaniyeler. Dengesiz ağ bağlantıları için bu değeri artırın.

Yaygın seçeneklerle bir örnek:

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

Arka uç özel ayarlar

Bu ayar, sözlüğün DATABASES dışındaki modül düzeyinde settings.pyyer alır:

Setting Type Varsayılan Description
DATABASE_CONNECTION_POOLING Boolean True pyodbc'nin bağlantı havuzunu devre dışı bırakmak için ayarla False .

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