django-mssql-backend'den mssql-django'ya geçiş

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.