Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Эта статья представляет собой полный 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