mssql-django configuration reference

Эта статья представляет собой полный settings.py справочник по конфигурации для бэкенда базы mssql-django данных Django. Настройте подключение SQL Server, отредактировав DATABASES словарь в файле settings.py вашего проекта Django.

Минимальная конфигурация

Следующий пример показывает минимально требуемую конфигурацию:

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

Настройки подключения к базе данных

Эти настройки настраивают ваше DATABASES соединение. Большинство из них — стандартные сеттинги Django; Отмечаются исключения:

Setting Type Description
ENGINE String Этот параметр должен содержать значение "mssql".
NAME String Имя базы данных. Обязательное.
HOST String Имя хоста или IP-адрес сервера. Используйте "server\\instance" формат для именованных экземпляров.
PORT String Порт экземпляра сервера. Пустая строка означает порт по умолчанию.
USER String Имя пользователя базы данных. Если это не указано, используется интегрированная безопасность Windows.
PASSWORD String Пароль пользователя базы данных.
AUTOCOMMIT Boolean Настройте на False отключение управления транзакциями Django. По умолчанию — True.
Trusted_Connection String Установите на "yes" (по умолчанию) для использования интегрированной безопасности Windows, если USER она не предоставляется. Когда USER обе установлены и PASSWORD установлены, эти удостоверения имеют приоритет и Trusted_Connection игнорируются. Установите "no" на явное отключение проверка подлинности Windows. Это расширение mssql-django , а не стандартный сеттинг Django.
TOKEN String Токен доступа для аутентификации Microsoft Entra (например, через azure.identity). Это расширение mssql-django , а не стандартный сеттинг Django.

Настройки ТЕСТОВ

Эти настройки управляют базой данных тестов, используемой тестовым раннером Django:

Setting Type Description
NAME String Имя тестовой базы данных. По умолчанию: "test_" + NAME.
COLLATION String Сравнение для тестовой базы данных. По умолчанию: экземпляр по умолчанию.
DEPENDENCIES List Зависимости порядка создания базы данных.
MIRROR String Псевдоним базы данных для зеркалирования во время тестирования.

Пример:

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

ПАРАМЕТРЫ

OPTIONS Словарь предоставляет конфигурацию, специфичную для бэкенда. Поместите эти настройки в DATABASES["default"]["OPTIONS"] словарь:

Опция Type По умолчанию Description
driver String "ODBC Driver 18 for SQL Server" Драйвер ODBC для использования. Автоматически возвращается к драйверу 17, если 18 не установлен.
isolation_level String None Уровень изоляции транзакций: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READSNAPSHOTили SERIALIZABLE.
dsn String None Назван DSN. Может использоваться вместо HOST.
host_is_server Boolean False Установлен на True использованиеPORTHOST/напрямую с FreeTDS вместо freetds.conf имени сервера данных.
unicode_results Boolean False Активируйте функцию pyodbc unicode_results .
extra_params String None Дополнительные параметры ODBC в "param=value;param=value" формате. Используется для аутентификации Microsoft Entra.
collation String None Колляция для поиска текстовых полей (например, "Chinese_PRC_CI_AS").
connection_timeout Integer 0 Тайм-аут соединения за секунды (0 = отключено).
connection_retries Integer 5 Количество попыток повторного подключения.
connection_retry_backoff_time Integer 5 Время отступления в секунды между повторами.
query_timeout Integer 0 Тайм-аут запроса за секунды (0 = отключено).
setencoding / setdecoding List None Конфигурация кодирования PYODBC / .
return_rows_bulk_insert Boolean False Разрешите возвращающиеся ряды из оптовой вставки. Должно быть, False если в таблицах есть триггеры.
datefirst Integer 7 Первый день недели для SET DATEFIRST. 7— воскресенье (по умолчанию SQL Server), 1 — понедельник.
driver_needs_utf8 Опция только присутствия Не установлено Включите кодирование UTF-8 для драйвера ODBC. Эта опция включается, когда ключ присутствует в OPTIONS; само значение игнорируется. Обычно требуется для FreeTDS или более старых конфигураций unixODBC, которые по умолчанию используют Latin-1.
driver_charset String None Явный набор символов для драйвера ODBC (например, "UTF-8"). Используйте с driver_needs_utf8 моментом, когда драйвер не автоматически определяет кодирование.
connection_recovery_interval_msec Плавать 0.0 Миллисекунды ожидания между попытками повтора в цикле восстановления соединения бэкенда после сетевой ошибки. Увеличьте это значение для нестабильных сетевых соединений.

Пример с распространёнными вариантами:

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

Настройки, специфичные для бэкенда,

Эта настройка размещается на уровне модуля в settings.py, вне словаря DATABASES :

Setting Type По умолчанию Description
DATABASE_CONNECTION_POOLING Boolean True Установлен на False отключение пула соединений pyodbc.

Пример:

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