Migrasi dari django-mssql-backend ke mssql-django

Artikel ini menjelaskan cara memigrasikan proyek Django dari django-mssql-backend paket (yang menggunakan sql_server.pyodbc mesin) ke mssql-django paket.

Overview

Paket mssql-django ini adalah penerus django-mssql-backend. Tetap menyediakan backend database Django untuk SQL Server menggunakan pyodbc, tetapi dengan nama paket yang diperbarui, identifier engine, serta dukungan untuk versi Django yang lebih baru.

Fitur django-mssql-backend mssql-django
Nama paket django-mssql-backend mssql-django
MESIN sql_server.pyodbc mssql
Dukungan Django 2.2, 3.0, 3.1 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0
Dikelola oleh Microsoft Microsoft
PyPI pip install django-mssql-backend pip install mssql-django

Langkah 1: Memperbarui paket Python

Hapus instalan paket lama dan instal yang baru:

pip uninstall django-mssql-backend
pip install mssql-django

Jika Anda menggunakan requirements.txt file, ganti referensi paket:

# Before
django-mssql-backend>=2.8.1

# After
mssql-django>=1.7

Langkah 2: Perbarui DATABASE MESIN

Di settings.py Anda, ubah nilai ENGINE dari sql_server.pyodbc menjadi 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 v1.7 menggunakan ODBC Driver 18 secara default. Anda dapat terus menggunakan Driver 17 dengan menentukannya secara eksplisit dalam driver opsi .

Langkah 3: Memperbarui INSTALLED_APPS

Jika INSTALLED_APPS Anda merujuk ke sql_server, perbarui:

# Before
INSTALLED_APPS = [
    "sql_server",
    # ...
]

# After - only needed if using inspectdb
INSTALLED_APPS = [
    "mssql",
    # ...
]

Langkah 4: Verifikasi konfigurasi

Jalankan verifikasi cepat untuk memastikan backend baru berhasil tersambung:

python manage.py check
python manage.py showmigrations

Langkah 5: Jalankan rangkaian pengujian Anda

Jalankan rangkaian pengujian proyek Anda untuk memverifikasi semuanya berfungsi dengan backend baru:

python manage.py test

Perubahan besar yang perlu diwaspadai

Area Perubahan
Driver ODBC baku v1.7 secara bawaan menggunakan ODBC Driver 18 for SQL Server, yang secara bawaan menetapkan Encrypt=yes (Driver 17 secara bawaan menggunakan Encrypt=no). Koneksi ke server dengan sertifikat yang ditandatangani sendiri atau tidak tepercaya gagal kecuali Anda menambahkan TrustServerCertificate=yes ke extra_params. Atau, tentukan Driver 17 atau instal sertifikat tepercaya di server.
return_rows_bulk_insert Secara default menjadi False. Atur ke True untuk mengaktifkan pengembalian ID setelah bulk_create. Harus tetap False untuk tabel dengan pemicu. Lihat Operasi massal dengan mssql-django.