Nieuw in mssql-django

In dit artikel worden nieuwe functies, verbeteringen en wijzigingen in elke versie van de mssql-django Django-databaseback-end beschreven.

Versie 1.7.3

Releasedatum: juni 2026

Versie 1.7.3 is een achterwaarts compatibele patchrelease met twee verbindings- en runtimeoplossingen.

Fouten opgelost

  • FA001 voor Authentication= andere modi dan ActiveDirectoryMsi: Voorheen heeft de back-end alleen overgeslagen Trusted_Connection=yes voor ActiveDirectoryMsi. Andere Entra-modi die geen USER-waarde leveren (bijvoorbeeld ActiveDirectoryIntegrated, ActiveDirectoryDefault of ActiveDirectoryDeviceFlow) ontvingen nog steeds Trusted_Connection=yes, die door het ODBC-stuurprogramma werd geweigerd met FA001 (Cannot use Authentication option with Integrated Security option). De oplossing detecteert elke expliciete waarde Authentication= met een hoofdletterongevoelige overeenkomst die rekening houdt met woordgrenzen, en slaat zowel Trusted_Connection als Integrated Security=SSPI over. Wachtwoordafhandeling is ongewijzigd: SqlPassword, ActiveDirectoryPassworden ActiveDirectoryServicePrincipal blijven verzenden PWD, terwijl ActiveDirectoryInteractive deze blijft weglaten.
  • KeyError op gesubclasseerde DatabaseWrapper: De in de cache opgeslagen eigenschappen sql_server_version en to_azure_sql_db waren gebaseerd op introspectie van type(self).__dict__ van cached_property, wat de eerste keer dat een subklasse van DatabaseWrapper ze benaderde, KeyError veroorzaakte (een regressie die in 1.7.1 is geïntroduceerd). De oplossing maakt gebruik van expliciete dictionaries op klasseniveau (_known_versions, _known_azures), die via self. worden benaderd, zodat de naamopzoeking via de MRO wordt opgelost en wrappers in subklassen correct werken.

Versie 1.7.2

Releasedatum: mei 2026

Versie 1.7.2 is een achterwaarts compatibele patchrelease met tijdzone- en compatibiliteitsoplossingen.

Fouten opgelost

  • .explain() compatibiliteit voor Django 4.0 en later: Compilerverwerking van Django's EXPLAIN-metadata gecorrigeerd, zodat .explain() niet langer mislukt met AttributeError op Django 4.0 en later. De backend volgt nu explain-velden die bij de versie passen en genereert NotSupportedError correct wanneer dat nodig is.
  • verwerking van datetimeoffset-tijdzones: Opgelost: het parseren van datetimeoffset is gecorrigeerd, zodat tijdzone-offsets behouden blijven in plaats van te worden verwijderd. Geretourneerde datum- en tijdwaarden bevatten nu tijdzone-informatie indien verwacht.
  • Now() metUSE_TZ=True: Bijgewerkte SQL-generatie voor Now() het gebruik van tijdzonebewust gedrag wanneer tijdzoneondersteuning is ingeschakeld, waardoor tijdstempeldrift op niet-UTC-SQL Server hosts wordt voorkomen.

Versie 1.7.1

Releasedatum: april 2026

Versie 1.7.1 is een achterwaarts compatibele patchrelease met bugfixes.

Fouten opgelost

  • FieldDoesNotExist bij het wijzigen van velden met aflopende indexvolgorde: Opgelost _alter_field() in schema.py om index.fields_orders te gebruiken in plaats van index.fields bij het omzetten van indexveldnamen. De vorige code gaf ruwe veld-met-sortering-tekenreeksen (bijvoorbeeld "-pub_date") door aan model._meta.get_field(), wat leidde tot FieldDoesNotExist. Nu wordt alleen de veldnaam geëxtraheerd en wordt het achtervoegsel voor de sortering correct weggelaten.
  • Ondersteuning voor SQL-database in Microsoft Fabric (EngineEdition 12): SQL-database in Fabric (EngineEdition=12) wordt herkend als een Azure-versie. Voorheen werd de engineversie van Fabric niet herkend, waardoor to_azure_sql_dbFalse retourneerde en feature-gatecontroles faalden. De oplossing voegt EDITION_AZURE_SQL_FABRIC=12 toe aan _AZURE_EDITIONS en wijst Fabric toe aan de meest recente ondersteunde SQL Server versie. JSONField, hashfuncties, collatie-inspectie en afbouw van testdatabases werken nu naar behoren op Fabric.

Versie 1.7

Releasedatum: maart 2026

Hoogtepunten

  • Django 6.0-ondersteuning: Volledige compatibiliteit met Django 6.0, waarvoor Python 3.12 of hoger is vereist. Alle 6.0 API-wijzigingen worden transparant verwerkt door de back-end.
  • Gedeeltelijke CompositePrimaryKey ondersteuning: De back-end voegt gedeeltelijke ondersteuning toe voor Django 5.2 CompositePrimaryKey. Voor tuple-vergelijkingen met subquery's is Django 5.2.4 of nieuwer vereist, en er blijven enkele randgevallen met samengestelde sleutels en JSONField bestaan. Django 5.2 zelf werd voor het eerst ondersteund in mssql-django 1.6.
  • SQL Server 2025-ondersteuning: gevalideerd op basis van SQL Server 2025.
  • ODBC-stuurprogramma 18 standaard: de back-end is nu standaard ingesteld op ODBC-stuurprogramma 18 voor SQL Server, met automatische terugval naar ODBC-stuurprogramma 17 als versie 18 niet is geïnstalleerd.

Versiespecifieke opmerkingen

Django-versie Aantekeningen
Django 5.1 inspectdb kan tabellen met samengestelde primaire sleutels inspecteren, maar er worden geen volledige modeldefinities voor deze tabellen gegenereerd.
Django 5.2 CompositePrimaryKey ondersteuning is gedeeltelijk. Voor vergelijking van tuples met subquery’s is Django 5.2.4 of nieuwer vereist, en er blijven nog enkele migratie- en JSONField randgevallen over.
Django 6.0 Vereist Python 3.12 of hoger. Alle beperkingen van 5.2 zijn van toepassing.

Versie 1.6

Releasedatum: augustus 2025

  • Django 5.1- en 5.2-ondersteuning toegevoegd.
  • Verbeterde JSON-functionaliteit en compatibiliteit met eerdere versies.
  • Verbeterde pijplijninfrastructuur.

Versie 1.5

Releasedatum: april 2024

  • Functievlag supports_comments toegevoegd voor db_comments.
  • Bugfixes voor AutoField, parameteropmaak en schemaquery’s.

Versie 1.4

Releasedatum: januari 2024

  • Django 5.0-ondersteuning toegevoegd.
  • Er is db_comment ondersteuning toegevoegd.
  • Opgeloste fouten voor datum-/tijdconversies en lege aggregaties.

Versie 1.3

Releasedatum: mei 2023

  • Django 4.2-ondersteuning toegevoegd.
  • Er is ondersteuning toegevoegd voor hoofdlettergevoelige Replace functies.
  • Bugfixes voor de verwerking van OFFSET en linkeropvulling.

Versie 1.2

Releasedatum: december 2022

  • Django 4.1-ondersteuning toegevoegd.
  • Ondersteuning voor tijdzone toegevoegd (datetimeoffset met USE_TZ=True).
  • Optie return_rows_bulk_insert toegevoegd voor het ophalen van ID’s bij bulk-insert.
  • Er is SQL Server 2022-ondersteuning toegevoegd.
  • Er is JSONField ondersteuning toegevoegd voor Azure SQL Managed Instance.

Versie 1.1

Releasedatum: juli 2022

  • Ondersteuning voor Django 3.2 en 4.0.
  • SQL Server 2016 en hoger en Azure SQL Database ondersteuning.
  • pyodbc-gebaseerde connectiviteit.