Az mssql-django újdonságai

Ez a cikk a Django-adatbázis háttérrendszerének mssql-django minden verziójában új funkciókat, fejlesztéseket és módosításokat ismertet.

Verzió 1.7.4

Megjelenési dátum: 2026. július

Az 1.7.4-es verzió egy visszafelé kompatibilis patch kiadás, amely két javítást tartalmaz a nyers és annotált GROUP BY lekérdezéskezeléshez.

Hibajavítások

  • IndexError a(z) GROUP BY lekérdezéseken escape-elt %% és valódi paraméterekkel: Korábban minden GROUP BY záradékot tartalmazó lekérdezés áthaladt egy helyőrző-átírási lépésen, amely illesztette a(z) %\w+ elemet, és lecserélte {} értékre. Ez a regex az escape-elt %% literálokra is egyezést adott, ami fantom helyőrzőket szúrt be, és kiváltotta a IndexError: Replacement index N out of range-t, amikor egy lekérdezés egy %%-escape-et valódi %s paraméterrel kombinált. A szűkített regex most már csak a %% elemet (változatlanul megőrizve) és a %s elemet (a valódi helyőrzőt) érinti, és ez az egyetlen minta, amelyet a fordítóprogram valaha generál. Ugyanez a javítás egy másik, nem kapcsolódó csendes hiba előfordulását is megakadályozza, amelyben egy nem escape-elt minta, például a(z) LIKE '%abc%', egy paraméter nélküli lekérdezésben LIKE '{}%' alakra íródott át, és emiatt a rendszer hibás sorokat adott vissza.
  • NotImplementedError for IntegerChoices nyers GROUP BY lekérdezésekben: Korábban egy IntegerChoices érték átadása egy olyan nyers lekérdezésnek, amely GROUP BY záradékot tartalmazott, NotImplementedError: Not supported type <enum ...> eredményezett. A paramétertípus segítő pontos típusellenőrzéseket használt (typ == int), és type(IntegerChoices_value) az enum osztály, nem intpedig , így az érték átesett az emeléshez, még akkor is, ha alosztályokat tartalmaz int. A típusellenőrzések most már a(z) isinstance elemet használják, és a(z) bool ág kiértékelése a(z) int ág előtt történik (mivel a(z) bool maga is a(z) int alosztálya). Az enumerált értékek most helyesen társulnak, a(z) bool továbbra is a(z) BIT-hez társul, az egyszerű int pedig változatlan marad.

1.7.3-es verzió

Kiadás dátuma: 2026. június

Az 1.7.3-s verzió egy visszamenőlegesen kompatibilis javítás, két kapcsolattal és futtatókörnyezeti javítással.

Hibajavítások

  • FA001-től eltérő Authentication= módok esetén a(z) ActiveDirectoryMsi: Korábban a háttérrendszer csak Trusted_Connection=yes esetén hagyta ki a(z) ActiveDirectoryMsi elemet. Az egyéb Entra-módok, amelyek nem adnak meg USER értéket (például ActiveDirectoryIntegrated, ActiveDirectoryDefault, ActiveDirectoryDeviceFlow), továbbra is megkapták a(z) Trusted_Connection=yes értéket, amelyet az ODBC-illesztőprogram FA001 hibaüzenettel utasított el (Cannot use Authentication option with Integrated Security option). A javítás minden explicit Authentication= értéket észlel egy határokat figyelembe vevő, a kis- és nagybetűket nem megkülönböztető egyezéssel, és kihagyja mind a Trusted_Connection-, mind a Integrated Security=SSPI-értéket. A jelszókezelés nem változik: SqlPassword, ActiveDirectoryPasswordés ActiveDirectoryServicePrincipal továbbra is elküldi PWD, miközben ActiveDirectoryInteractive továbbra is kihagyja.
  • KeyError leszármaztatott DatabaseWrapper esetén: A gyorsítótárazott sql_server_version és to_azure_sql_db tulajdonságok a type(self).__dict__cached_property introspekciójára támaszkodtak, ami KeyError váltott ki, amikor egy DatabaseWrapper-leszármazott először hozzáfért ezekhez (az 1.7.1-ben bevezetett regresszió). A javítás explicit osztályszintű diktálásokat (_known_versions, ) _known_azureshasznál, self.így a keresés az MRO-n keresztül oldható fel, és az alosztályozott burkolók megfelelően működnek.

1.7.2-es verzió

Kiadás dátuma: 2026. május

Az 1.7.2-es verzió egy visszafelé kompatibilis javítókiadás, amely időzóna- és kompatibilitási javításokat tartalmaz.

Hibajavítások

  • .explain() Kompatibilitás a Django 4.0-val és újabb verziókkal: Kijavítottuk a Django explain metaadatainak fordítókezelését, így .explain() a Django 4.0-val és újabb verziókkal már nem ad AttributeError hibát. A háttérrendszer mostantól a verziónak megfelelő explain mezőket használja, és szükség esetén megfelelően dobja a(z) NotSupportedError-t.
  • datetimeoffset időzóna kezelése: Rögzített datetimeoffset-elemzés , így az időzóna-eltolások az elvetés helyett megmaradnak. A visszaadott dátum- és időértékek mostantól időzóna-információt is tartalmaznak, ahol ez elvárt.
  • Now() with USE_TZ=True: Frissítettük a(z) Now() SQL-generálását, hogy időzóna-kezelést figyelembe vevő működést használjon, ha az időzóna-támogatás engedélyezve van, megelőzve ezzel az időbélyeg-eltolódást a nem UTC időzónára beállított SQL Server-gazdagépeken.

1.7.1-es verzió

Kiadás dátuma: 2026. április

Az 1.7.1-es verzió egy visszamenőlegesen kompatibilis javítás, hibajavításokkal.

Hibajavítások

  • FieldDoesNotExist csökkenő indexsorrendű mezők módosításakor: Javítva: a(z) _alter_field() alatti schema.py mostantól index.fields_orders-et használ index.fields helyett az indexmezőnevek feloldásakor. Az előző kód nyers, rendezést tartalmazó mezőkarakterláncokat (például "-pub_date") adott át a(z) model._meta.get_field() elemnek, ami FieldDoesNotExist kivételt váltott ki. Most már csak a mezőnév lesz kinyerve, és a rendezési utótagot megfelelően elveti a rendszer.
  • SQL-adatbázis támogatása a Microsoft Fabricben (EngineEdition 12): Azure-kiadásként ismerte fel a Fabricben található SQL-adatbázist (EngineEdition=12). Korábban a Fabric motorváltozata nem volt felismerhető, ami miatt a to_azure_sql_db a False értéket adta vissza, és a feature gate ellenőrzések meghiúsultak. A javítás hozzáadja a(z) EDITION_AZURE_SQL_FABRIC=12 elemet a(z) _AZURE_EDITIONS elemhez, és a Fabricet a legújabb támogatott SQL Server-verzióhoz rendeli. JSONField, a hash függvények, a rendezési beállítások introspekciója és a tesztadatbázis lebontása most már megfelelően működik a Fabricön.

1.7-es verzió

Kiadás dátuma: 2026. március

Legfontosabb tudnivalók

  • Django 6.0-támogatás: Teljes kompatibilitás a Django 6.0-val, amelyhez Python 3.12 vagy újabb verzióra van szükség. A 6.0 API-módosításokat a háttérrendszer transzparensen kezeli.
  • Részleges CompositePrimaryKey támogatás: A háttérrendszer részleges támogatást ad a Django 5.2-hez CompositePrimaryKey. A tuple-ök albekérdezésekkel való összehasonlításához Django 5.2.4 vagy újabb verzió szükséges, és néhány összetett kulccsal kapcsolatos, valamint JSONField peremhelyzet továbbra is fennáll. Maga a Django 5.2 először az mssql-django 1.6-os verzióban támogatott.
  • SQL Server 2025 támogatása: Validálva az SQL Server 2025-tel.
  • ODBC Driver 18 alapértelmezett: A háttérrendszer mostantól az ODBC Driver 18 for SQL Server, és automatikusan visszavált az ODBC Driver 17-es verziójára, ha a 18-es verzió nincs telepítve.

Verzióspecifikus megjegyzések

Django verziója Jegyzetek
Django 5.1 inspectdb képes összetett elsődleges kulcsokkal megvizsgálni a táblákat, de nem hoz létre teljes modelldefiníciókat hozzájuk.
Django 5.2 CompositePrimaryKey támogatás részleges. A tuple-ök albekérdezésekkel való összehasonlításához a Django 5.2.4-es vagy újabb verziója szükséges, és egyes migrációs, valamint JSONField szélső esetek továbbra is fennállnak.
Django 6.0 A Python 3.12 vagy újabb verziót igényel. Az 5.2-ben érvényes korlátozások érvényesek.

1.6-os verzió

Kiadás dátuma: 2025. augusztus

  • Django 5.1 és 5.2 támogatás hozzáadva.
  • Továbbfejlesztett JSON-funkciók és visszamenőleges kompatibilitás.
  • Továbbfejlesztett folyamatinfrastruktúra.

1.5-ös verzió

Kiadás dátuma: 2024. április

  • A(z) supports_comments funkciókapcsoló hozzáadva ehhez: db_comments.
  • Hibajavítások a AutoFieldparaméterformázáshoz és a séma-lekérdezésekhez.

1\.4-es verzió

Kiadás dátuma: 2024. január

  • Django 5.0-támogatás hozzáadva.
  • db_comment támogatása hozzáadva.
  • Hibajavítások a dátum-/időátalakításokhoz és az üres összesítésekhez.

1.3-es verzió

Kiadás dátuma: 2023. május

  • Django 4.2-támogatás hozzáadva.
  • Bekerült a kis- és nagybetűk megkülönböztetését támogató Replace függvény támogatása.
  • Hibajavítások a(z) OFFSET kezeléséhez és a bal oldali térközhöz.

1.2-es verzió

Kiadás dátuma: 2022. december

  • Django 4.1-támogatás hozzáadva.
  • Az időzóna támogatása hozzáadva (datetimeoffset with USE_TZ=True).
  • Hozzáadva a(z) return_rows_bulk_insert beállítás a tömeges beszúrás azonosítójának lekéréséhez.
  • SQL Server 2022-támogatás hozzáadva.
  • Hozzáadtuk az Azure SQL Managed Instance JSONField támogatását.

1.1-es verzió

Kiadás dátuma: 2022. július

  • Django 3.2 és 4.0 támogatás.
  • SQL Server 2016-os és újabb verzióit, és Azure SQL Database támogatást.
  • pyodbc-alapú kapcsolat.