Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, bir Django projesinin sql_server.pyodbc altyapısını kullanan django-mssql-backend paketinden mssql-django paketine nasıl taşınacağını açıklar.
Overview
mssql-django paketi, django-mssql-backend öğesinin ardılıdır. Pyodbc kullanarak SQL Server için bir Django veritabanı arka ucu sağlamaya devam eder, ancak güncelleştirilmiş paket adı, altyapı tanımlayıcısı ve daha yeni Django sürümleri için destek sağlar.
| Feature | django-mssql-backend | mssql-django |
|---|---|---|
| Paket adı | django-mssql-backend |
mssql-django |
| MOTORU | sql_server.pyodbc |
mssql |
| Django desteği | 2.2, 3.0, 3.1 | 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0 |
| Bakımını yapan: | Microsoft Bilişim Sistemleri | Microsoft Bilişim Sistemleri |
| PyPI | pip install django-mssql-backend |
pip install mssql-django |
1. Adım: Python paketini güncelleştirme
Eski paketi kaldırın ve yenisini yükleyin:
pip uninstall django-mssql-backend
pip install mssql-django
requirements.txt dosyası kullanıyorsanız, paket başvurusunu değiştirin:
# Before
django-mssql-backend>=2.8.1
# After
mssql-django>=1.7
2. Adım: DATABASE ENGINE'i güncelleyin
settings.py içinde, ENGINE değerini sql_server.pyodbc değerinden mssql değerine değiştirin:
# 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 v1.7 varsayılan olarak ODBC Sürücüsü 18'i kullanır.
driver seçeneğinde Driver 17'yi açıkça belirterek kullanmaya devam edebilirsiniz.
3. Adım: INSTALLED_APPS'i Güncelleyin
INSTALLED_APPS öğeniz sql_server öğesine başvuruyorsa, bunu güncelleştirin:
# Before
INSTALLED_APPS = [
"sql_server",
# ...
]
# After - only needed if using inspectdb
INSTALLED_APPS = [
"mssql",
# ...
]
4. Adım: Yapılandırmayı doğrulama
Yeni arka ucun başarıyla bağlandığından emin olmak için hızlı bir doğrulama çalıştırın:
python manage.py check
python manage.py showmigrations
5. Adım: Test paketinizi çalıştırma
Her şeyin yeni arka uçla çalıştığını doğrulamak için projenizin test paketini çalıştırın:
python manage.py test
Dikkat edilmesi gereken geriye dönük uyumluluğu bozan değişiklikler
| Area | Change |
|---|---|
| Varsayılan ODBC sürücüsü | v1.7'nin varsayılanı ODBC Driver 18 for SQL Server'dır; bu da varsayılan olarak Encrypt=yes ayarlar (Driver 17'nin varsayılanı Encrypt=no idi). Kendinden imzalı veya güvenilmeyen sertifikalara sahip sunucularla bağlantılar, TrustServerCertificate=yes ögesini extra_params öğesine eklemediğiniz sürece başarısız olur. Alternatif olarak, Sürücü 17'yi belirtin veya sunucuya güvenilir bir sertifika yükleyin. |
return_rows_bulk_insert |
Varsayılan değer False’dır.
bulk_create sonrasında kimliklerin döndürülmesini etkinleştirmek için True olarak ayarlayın.
False, tetikleyici içeren tablolar için korunmalıdır. Bkz. mssql-django ile toplu işlemler. |