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 django-mssql-backend altyapısını kullanan sql_server.pyodbc paketinden mssql-django paketine nasıl taşınacağını açıklar.
Overview
mssql-django paketi, django-mssql-backend öğesinin ardılıdır. SQL Server için güncellenmiş paket adı, motor tanımlayıcısı ve yeni Django sürümleri için destek sağlayan bir Django veritabanı arka uçu sağlar. pyodbc sürücü yolu 2.0'da mssql-django varsayılan olarak kalır ve her veritabanı aliası mssql-python sürücüsüne katılabilir. Daha fazla bilgi için, mssql-django için veritabanı sürücüsünü seç sayfasına bakınız.
| 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 | 5.2, 6.0, 6.1 |
| 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>=2.0
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
Varsayılan pyodbc yolu, SQL Server için Microsoft ODBC Driver 18 kullanır.
driver seçeneğinde bunu açıkça belirterek pyodbc yolunda Sürücü 17'yi kullanmaya devam edebilirsiniz. mssql-python yolu bu driver seçeneği görmezden geliyor.
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 veritabanı sürücüsü |
mssql-django 2.0, pyodbc'yi varsayılan veritabanı sürücüsü olarak tutar. mssql-python yolunu kullanmak için, OPTIONS değerini takma adın "python_driver": "mssql_python" sözlüğünde ayarlayın. |
| pyodbc yolundaki varsayılan ODBC sürücüsü | pyodbc yolu, varsayılan olarak Encrypt=yes ayarlayan ODBC Driver 18 for SQL Server kullanır. 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, pyodbc yolunda 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.
True sonrasında kimliklerin döndürülmesini etkinleştirmek için bulk_create olarak ayarlayın.
False, tetikleyici içeren tablolar için korunmalıdır. Bkz. mssql-django ile toplu işlemler. |