Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vysvětluje, jak migrovat projekt Django z django-mssql-backend balíčku (který používal sql_server.pyodbc modul) do mssql-django balíčku.
Overview
Balíček mssql-django je následník django-mssql-backend. Nadále poskytuje back-end databáze Django pro SQL Server pomocí pyodbc, ale s aktualizovaným názvem balíčku, identifikátorem stroje a podporou novějších verzí Django.
| Vlastnost | django-mssql-backend | mssql-django |
|---|---|---|
| Název balíčku | django-mssql-backend |
mssql-django |
| MOTOR | sql_server.pyodbc |
mssql |
| Podpora django | 2.2, 3.0, 3.1 | 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0 |
| Udržováno | Microsoft | Microsoft |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
Krok 1: Aktualizace balíčku Python
Odinstalujte starý balíček a nainstalujte nový balíček:
pip uninstall django-mssql-backend
pip install mssql-django
Pokud používáte requirements.txt soubor, nahraďte odkaz na balíček:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=1.7
Krok 2: Aktualizace DATABASE MODULU
Ve settings.py změňte hodnotu ENGINE z sql_server.pyodbc na 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 Verze 1.7 standardně používá ODBC Driver 18. Driver 17 můžete i nadále používat, když ho v možnosti driver explicitně uvedete.
Krok 3: Aktualizace INSTALLED_APPS
Pokud váš INSTALLED_APPS odkazuje na sql_server, aktualizujte jej:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
Krok 4: Ověření konfigurace
Spusťte rychlé ověření, abyste zajistili úspěšné připojení nového back-endu:
python manage.py check
python manage.py showmigrations
Krok 5: Spuštění testovací sady
Spusťte testovací sadu projektu a ověřte, že všechno funguje s novým back-endem:
python manage.py test
Zásadní změny, které se mají sledovat
| Oblast | Změna |
|---|---|
| Výchozí ovladač ODBC | v1.7 má jako výchozí ODBC Driver 18 for SQL Server, což ve výchozím nastavení nastaví Encrypt=yes (ovladač 17 měl jako výchozí Encrypt=no). Připojení k serverům se certifikáty s vlastním podpisem nebo nedůvěryhodnými certifikáty selže, pokud nepřidáte TrustServerCertificate=yes do extra_params. Případně můžete zadat ovladač 17 nebo nainstalovat důvěryhodný certifikát na server. |
return_rows_bulk_insert |
Výchozí hodnota je False. Nastavte na True, aby se po bulk_create vracela ID. Musí zůstat False u tabulek s triggery. Vizte Hromadné operace s mssql-django. |