Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo explica como migrar um projeto Django do django-mssql-backend pacote (que usou o sql_server.pyodbc motor) para o mssql-django pacote.
Overview
O mssql-django pacote é o sucessor de django-mssql-backend. Fornece um backend de base de dados Django para SQL Server com um nome de pacote atualizado, identificador de motor e suporte para versões mais recentes do Django. O caminho do driver pyodbc mantém-se como padrão na mssql-django versão 2.0, e cada alias de base de dados pode optar pelo driver mssql-python. Para mais informações, consulte Selecionar o driver da base de dados para mssql-django.
| Característica | django-mssql-backend | mssql-django |
|---|---|---|
| Nome do pacote | django-mssql-backend |
mssql-django |
| MOTOR | sql_server.pyodbc |
mssql |
| Apoio à Django | 2.2, 3.0, 3.1 | 5.2, 6.0, 6.1 |
| Mantido por | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Passo 1: Atualizar o pacote Python
Desinstala o pacote antigo e instala o novo:
pip uninstall django-mssql-backend
pip install mssql-django
Se usar um requirements.txt ficheiro, substitua a referência do pacote:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=2.0
Passo 2: Atualizar o DATABASE MOTOR
No seu settings.py, altere o valor de ENGINE de sql_server.pyodbc para 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
O caminho pyodbc predefinido usa o driver ODBC 18 da Microsoft para SQL Server. Podes continuar a usar o Driver 17 no caminho pyodbc especificando-o explicitamente na driver opção. O caminho mssql-python ignora essa driver opção.
Passo 3: Atualizar INSTALLED_APPS
Se o teu INSTALLED_APPS faz referência a sql_server, atualiza-o:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Passo 4: Verificar a configuração
Faça uma verificação rápida para garantir que o novo backend se liga com sucesso:
python manage.py check
python manage.py showmigrations
Passo 5: Execute o seu conjunto de testes
Executa o conjunto de testes do teu projeto para verificar se tudo funciona com o novo backend:
python manage.py test
Mudanças de destaque a ter em conta
| Area | Mudança |
|---|---|
| Controlador de base de dados predefinido |
mssql-django A versão 2.0 mantém o pyodbc como o driver padrão da base de dados. Para usar o caminho mssql-python, defina "python_driver": "mssql_python" no dicionário OPTIONS do alias. |
| Controlador ODBC predefinido no caminho de pyodbc | O caminho pyodbc usa ODBC Driver 18 for SQL Server, que define Encrypt=yes por defeito. As ligações a servidores com certificados auto-assinados ou não confiáveis falham, a menos que adicione TrustServerCertificate=yes a extra_params. Alternativamente, especifique o Driver 17 no caminho pyodbc ou instale um certificado de confiança no servidor. |
return_rows_bulk_insert |
O valor padrão é False. Defina como True para permitir devolver IDs após bulk_create. Deve permanecer False para tabelas com acionadores. Ver Operações em massa com mssql-django. |