Apa yang baru dalam mssql-django

Artikel ini menjelaskan fitur, peningkatan, dan perubahan baru di setiap versi mssql-django backend database Django.

Versi 1.7.3

Tanggal rilis: Juni 2026

Versi 1.7.3 adalah rilis patch yang kompatibel dengan versi sebelumnya, dengan dua perbaikan pada koneksi dan runtime.

Pemulihan kesalahan perangkat lunak

  • FA001 untuk Authentication= mode selain ActiveDirectoryMsi: Sebelumnya, backend hanya melewati Trusted_Connection=yes untuk ActiveDirectoryMsi. Mode Entra lainnya yang tidak menyediakan nilai USER (misalnya, ActiveDirectoryIntegrated, ActiveDirectoryDefault, ActiveDirectoryDeviceFlow) tetap menerima Trusted_Connection=yes, yang ditolak oleh driver ODBC dengan galat FA001 (Cannot use Authentication option with Integrated Security option). Perbaikan ini mendeteksi nilai Authentication= eksplisit apa pun dengan pencocokan yang memperhatikan batas kata dan tanpa membedakan huruf besar dan kecil, serta melewati Trusted_Connection dan Integrated Security=SSPI. Penanganan kata sandi tidak berubah: SqlPassword, , ActiveDirectoryPassworddan ActiveDirectoryServicePrincipal terus mengirim PWD, sambil ActiveDirectoryInteractive terus menghilangkannya.
  • KeyError pada DatabaseWrapper yang disubkelaskan: properti sql_server_version dan to_azure_sql_db yang di-cache bergantung pada introspeksi type(self).__dict__ terhadap cached_property, yang memunculkan KeyError saat subkelas DatabaseWrapper pertama kali mengaksesnya (regresi yang diperkenalkan pada 1.7.1). Perbaikan menggunakan dict tingkat kelas eksplisit (_known_versions, _known_azures) yang diakses melalui self., sehingga pencarian diselesaikan melalui MRO dan pembungkus subkelas bekerja dengan benar.

Versi 1.7.2

Tanggal rilis: Mei 2026

Versi 1.7.2 adalah rilis patch yang tetap kompatibel dengan versi sebelumnya, dengan perbaikan zona waktu dan kompatibilitas.

Pemulihan kesalahan perangkat lunak

  • .explain() Kompatibilitas untuk Django 4.0 dan yang lebih baru: Memperbaiki penanganan kompilator metadata penjelasan Django sehingga .explain() tidak lagi gagal dengan AttributeError pada Django 4.0 dan yang lebih baru. Sistem backend kini mengikuti field explain yang sesuai dengan versinya dan memunculkan NotSupportedError dengan benar saat diperlukan.
  • penanganan zona waktu pada datetimeoffset: Penguraian datetimeoffset telah diperbaiki sehingga offset zona waktu dipertahankan alih-alih dihapus. Datetime yang dikembalikan sekarang menyertakan zona waktu jika diharapkan.
  • Now() dengan USE_TZ=True: Memperbarui pembuatan SQL untuk Now() menggunakan perilaku sadar zona waktu saat dukungan zona waktu diaktifkan, mencegah penyimpangan tanda waktu pada host SQL Server non-UTC.

Versi 1.7.1

Tanggal rilis: April 2026

Versi 1.7.1 adalah rilis patch yang tetap kompatibel dengan versi sebelumnya disertai perbaikan bug.

Pemulihan kesalahan perangkat lunak

  • FieldDoesNotExist saat mengubah field dengan urutan indeks menurun: Memperbaiki _alter_field() di schema.py agar menggunakan index.fields_orders alih-alih index.fields saat menentukan nama field indeks. Kode sebelumnya meneruskan string field-with-ordering mentah (misalnya, "-pub_date") ke model._meta.get_field(), yang menaikkan FieldDoesNotExist. Sekarang hanya nama kolom yang diekstrak, dan akhiran pengurutan dibuang dengan benar.
  • Dukungan database SQL di Microsoft Fabric (EngineEdition 12): Mengenali database SQL di Fabric (EngineEdition=12) sebagai edisi Azure. Sebelumnya, edisi engine Fabric tidak dikenali, sehingga to_azure_sql_db mengembalikan False dan pemeriksaan feature-gate gagal. Perbaikan ditambahkan EDITION_AZURE_SQL_FABRIC=12 ke _AZURE_EDITIONS dan memetakan Fabric ke versi SQL Server terbaru yang didukung. JSONField, fungsi hash, introspeksi kolasi, dan pembongkaran basis data pengujian kini berfungsi dengan benar di Fabric.

Versi 1.7

Tanggal rilis: Maret 2026

Sorotan

  • Dukungan Django 6.0: Kompatibilitas penuh dengan Django 6.0, yang memerlukan Python 3.12 atau yang lebih baru. Semua perubahan API 6.0 ditangani secara transparan oleh backend.
  • Dukungan parsialCompositePrimaryKey: Backend menambahkan dukungan parsial untuk Django 5.2 CompositePrimaryKey. Perbandingan tuple terhadap subkueri memerlukan Django 5.2.4 atau versi yang lebih baru, dan beberapa kasus tepi terkait kunci komposit dan JSONField masih ada. Django 5.2 sendiri pertama kali didukung di mssql-django 1.6.
  • Dukungan SQL Server 2025: Telah divalidasi untuk SQL Server 2025.
  • ODBC Driver 18 default: Backend sekarang menggunakan ODBC Driver 18 sebagai default untuk SQL Server, dengan fallback secara otomatis ke ODBC Driver 17 jika versi 18 tidak diinstal.

Catatan khusus versi

Versi Django Notes
Django 5.1 inspectdb dapat memeriksa tabel dengan kunci primer komposit, tetapi tidak menghasilkan definisi model lengkap untuk mereka.
Django 5.2 CompositePrimaryKey dukungan bersifat parsial. Perbandingan tuple terhadap subkueri memerlukan Django 5.2.4 atau yang lebih baru, dan beberapa migrasi ditambah JSONField kasus tepi tetap ada.
Django 6.0 Memerlukan Python 3.12 atau yang lebih baru. Semua batasan 5.2 berlaku.

Versi 1.6

Tanggal rilis: Agustus 2025

  • Menambahkan dukungan Django 5.1 dan 5.2.
  • Fungsionalitas JSON yang ditingkatkan dan kompatibilitas ke belakang.
  • Infrastruktur pipeline yang ditingkatkan.

Versi 1.5

Tanggal rilis: April 2024

  • Menambahkan feature flag supports_comments untuk db_comments.
  • Perbaikan bug untuk AutoField, pemformatan parameter, dan kueri skema.

Versi 1.4

Tanggal rilis: Januari 2024

  • Menambahkan dukungan Django 5.0.
  • Menambahkan dukungan db_comment.
  • Perbaikan bug untuk konversi tanggal/waktu dan agregat kosong.

Versi 1.3

Tanggal rilis: Mei 2023

  • Menambahkan dukungan Django 4.2.
  • Menambahkan dukungan fungsi peka huruf besar/kecil Replace .
  • Perbaikan bug untuk penanganan OFFSET dan padding kiri.

Versi 1.2

Tanggal rilis: Desember 2022

  • Menambahkan dukungan Django 4.1.
  • Menambahkan dukungan zona waktu (datetimeoffset dengan USE_TZ=True).
  • Menambahkan opsi return_rows_bulk_insert untuk pengambilan ID penyisipan massal.
  • Menambahkan dukungan SQL Server 2022.
  • Menambahkan dukungan JSONField untuk Azure SQL Managed Instance.

Versi 1.1

Tanggal rilis: Juli 2022

  • Dukungan Django 3.2 dan 4.0.
  • SQL Server 2016 dan yang lebih baru, serta dukungan Azure SQL Database.
  • konektivitas berbasis pyodbc.