Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo explica como migrar um projeto do Django do django-mssql-backend pacote (que usou o sql_server.pyodbc mecanismo) para o mssql-django pacote.
Overview
O mssql-django pacote é o sucessor de django-mssql-backend. Ele continua fornecendo um backend de banco de dados para Django no SQL Server usando pyodbc, mas com um nome de pacote atualizado, um identificador de mecanismo atualizado e suporte a versões mais recentes do Django.
| Característica | django-mssql-backend | mssql-django |
|---|---|---|
| Nome do pacote | django-mssql-backend |
mssql-django |
| MOTOR | sql_server.pyodbc |
mssql |
| Suporte do Django | 2.2, 3.0, 3.1 | 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0 |
| Mantido por | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Etapa 1: Atualizar o pacote de Python
Desinstale o pacote antigo e instale o novo:
pip uninstall django-mssql-backend
pip install mssql-django
Se você usar um requirements.txt arquivo, substitua a referência do pacote:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=1.7
Etapa 2: Atualizar o DATABASE MOTOR
Na sua 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
mssql-django A v1.7 usa como padrão o Driver ODBC 18. Você pode continuar a usar o Driver 17 especificando-o explicitamente na opção driver .
Etapa 3: Atualizar INSTALLED_APPS
Se o seu INSTALLED_APPS faz referência a sql_server, atualize-o:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Etapa 4: Verificar a configuração
Execute uma verificação rápida para garantir que o novo back-end se conecte com êxito:
python manage.py check
python manage.py showmigrations
Etapa 5: Executar seu conjunto de testes
Execute o conjunto de testes do projeto para verificar se tudo funciona com o novo back-end:
python manage.py test
Mudanças que causam quebra às quais ficar atento
| Area | Change |
|---|---|
| Driver ODBC padrão | A v1.7 tem como padrão ODBC Driver 18 for SQL Server, que define Encrypt=yes por padrão (o Driver 17 tinha Encrypt=no como padrão). As conexões com servidores com certificados autoassinados ou não confiáveis falham, a menos que você adicione TrustServerCertificate=yes a extra_params. Como alternativa, especifique o Driver 17 ou instale um certificado confiável no servidor. |
return_rows_bulk_insert |
Usa False como padrão. Defina como True para habilitar o retorno de IDs após bulk_create. Deve permanecer False para tabelas com gatilhos. Consulte operações em massa com mssql-django. |