Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come eseguire la migrazione di un progetto Django dal django-mssql-backend pacchetto (che ha usato il sql_server.pyodbc motore) al mssql-django pacchetto.
Overview
Il mssql-django pacchetto è il successore di django-mssql-backend. Fornisce un backend database Django per SQL Server con un nome di pacchetto aggiornato, un identificatore motore e supporto per le versioni più recenti di Django. Il percorso driver pyodbc rimane predefinito nella mssql-django versione 2.0, e ogni alias del database può optare per accedere al driver mssql-python. Per ulteriori informazioni, vedi Seleziona il driver del database per mssql-django.
| Caratteristica / Funzionalità | django-mssql-backend | mssql-django |
|---|---|---|
| Nome del pacchetto | django-mssql-backend |
mssql-django |
| MOTORE | sql_server.pyodbc |
mssql |
| Supporto di Django | 2.2, 3.0, 3.1 | 5.2, 6.0, 6.1 |
| Gestito da | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Passaggio 1: Aggiornare il pacchetto di Python
Disinstallare il pacchetto precedente e installarlo nuovo:
pip uninstall django-mssql-backend
pip install mssql-django
Se si usa un requirements.txt file, sostituire il riferimento al pacchetto:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=2.0
Passaggio 2: Aggiornare il DATABASE motore
Nel tuo settings.py, modifica il valore di ENGINE da sql_server.pyodbc a 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
Il percorso pyodbc predefinito utilizza il driver ODBC 18 di Microsoft per SQL Server. Puoi continuare a usare il Driver 17 sul percorso pyodbc specificandolo esplicitamente nell'opzione driver . Il percorso mssql-python ignora l'opzione driver .
Passaggio 3: Aggiornare INSTALLED_APPS
Se il tuo INSTALLED_APPS fa riferimento a sql_server, aggiornalo:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Passaggio 4: Verificare la configurazione
Eseguire una verifica rapida per assicurarsi che il nuovo back-end si connetta correttamente:
python manage.py check
python manage.py showmigrations
Passaggio 5: Esegui la suite di test
Esegui la suite di test del progetto per verificare che tutto funzioni con il nuovo backend:
python manage.py test
Modifiche di rilievo da controllare
| Area | Change |
|---|---|
| Driver di database predefinito |
mssql-django La versione 2.0 mantiene pyodbc come driver predefinito del database. Per usare il percorso mssql-python, imposta "python_driver": "mssql_python" nel dizionario OPTIONS dell'alias. |
| Driver ODBC predefinito nel percorso di pyodbc | Il percorso pyodbc usa ODBC Driver 18 for SQL Server, che imposta Encrypt=yes di default. Le connessioni ai server con certificati autofirmati o non attendibili hanno esito negativo a meno che non si aggiunga TrustServerCertificate=yes a extra_params. In alternativa, specifica il Driver 17 sul percorso pyodbc o installa un certificato affidabile sul server. |
return_rows_bulk_insert |
Di default è False. Impostare su True per abilitare la restituzione degli ID dopo bulk_create. Deve rimanere False per le tabelle con trigger. Consulta le operazioni in blocco con mssql-django. |