Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как перенести проект Django из django-mssql-backend пакета (который использовал sql_server.pyodbc подсистему) в mssql-django пакет.
Overview
Пакет mssql-django является преемником django-mssql-backend. Она продолжает предоставлять серверную часть базы данных Django для SQL Server с помощью pyodbc, но с обновленным именем пакета, идентификатором ядра и поддержкой новых версий Django.
| Feature | django-mssql-backend | mssql-django |
|---|---|---|
| Имя пакета | django-mssql-backend |
mssql-django |
| ДВИГАТЕЛЬ | sql_server.pyodbc |
mssql |
| Поддержка Django | 2.2, 3.0, 3.1 | 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0 |
| Поддерживается: | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Шаг 1. Обновление пакета Python
Удалите старый пакет и установите новый:
pip uninstall django-mssql-backend
pip install mssql-django
При использовании requirements.txt файла замените ссылку на пакет:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=1.7
Шаг 2. Обновление DATABASE ЯДРА
В settings.py измените значение ENGINE с sql_server.pyodbc на mssql:
# Before
DATABASES = {
"default": {
"ENGINE": "sql_server.pyodbc",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 17 for SQL Server",
},
},
}
# After
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",
},
},
}
Note
mssql-django Версия 1.7 по умолчанию использует драйвер ODBC 18. Вы можете продолжать использовать драйвер 17, указав его явным образом в параметре driver .
Шаг 3. Обновление INSTALLED_APPS
Если ваш INSTALLED_APPS ссылается на sql_server, обновите его:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Шаг 4. Проверка конфигурации
Выполните быструю проверку, чтобы убедиться, что новый серверный сервер успешно подключается:
python manage.py check
python manage.py showmigrations
Шаг 5. Запуск набора тестов
Запустите набор тестов проекта, чтобы убедиться, что все работает с новой серверной частью:
python manage.py test
Изменения, нарушающие совместимость, на которые стоит обратить внимание
| Area | Change |
|---|---|
| Драйвер ODBC по умолчанию | В версии 1.7 значением по умолчанию является ODBC Driver 18 for SQL Server, который по умолчанию задаёт Encrypt=yes (в драйвере 17 значением по умолчанию было Encrypt=no). Подключения к серверам с самоподписанными или недоверенными сертификатами не удаются, если не добавить TrustServerCertificate=yes в extra_params. Кроме того, укажите драйвер 17 или установите доверенный сертификат на сервере. |
return_rows_bulk_insert |
По умолчанию — False. Установите значение True, чтобы включить возврат идентификаторов после bulk_create. Должно оставаться False для таблиц с триггерами. См. пакетные операции с mssql-django. |