Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden nieuwe functies, verbeteringen en wijzigingen in elke versie van de mssql-django Django-databaseback-end beschreven.
Versie 1.7.4
Releasedatum: juli 2026
Versie 1.7.4 is een achterwaarts compatibele patchrelease met twee fixes voor ruwe en geannoteerde GROUP BY queryafhandeling.
Fouten opgelost
-
IndexErrorvoorGROUP BY-query's met geëscapede%%en werkelijke parameters: Voorheen ging elke query met eenGROUP BY-clausule door een stap voor het herschrijven van tijdelijke aanduidingen, waarbij%\w+werd gezocht en vervangen door{}. Die regex matchte ook geëscapede%%literals, waardoor fantoom-placeholders werden ingevoegd en dit totIndexError: Replacement index N out of rangeleidde wanneer een query een%%-escape combineerde met een echte%sparameter. De vernauwde regex is nu alleen nog van toepassing op%%(letterlijk behouden) en%s(de echte placeholder), en dat is het enige patroon dat de compiler ooit genereert. Dezelfde correctie voorkomt ook een niet-gerelateerde stille bug waarbij een niet-geëscapet patroon zoalsLIKE '%abc%'in een query zonder parameters werd herschreven naarLIKE '{}%'en de onjuiste rijen retourneerde. -
NotImplementedErrorvoorIntegerChoicesin ruweGROUP BY-query's: Voorheen leidde het doorgeven van eenIntegerChoices-waarde aan een ruwe query die eenGROUP BY-clausule bevatte totNotImplementedError: Not supported type <enum ...>. De hulpfunctie voor parametertypering gebruikte exacte typecontroles (typ == int), entype(IntegerChoices_value)is de enum-klasse in plaats vanint, dus de waarde kwam daardoor toch bij de raise terecht, ook al is deze een subklasse vanint. Typecontroles gebruiken nuisinstance, en de takboolwordt vóór de takintgeëvalueerd (omdatboolzelf een subklasse vanintis). Enum-keuzes binden nu correct,boolbindenBITnog steeds, en gewoonintblijft ongewijzigd.
Versie 1.7.3
Releasedatum: juni 2026
Versie 1.7.3 is een achterwaarts compatibele patchrelease met twee verbindings- en runtimeoplossingen.
Fouten opgelost
-
FA001voorAuthentication=andere modi danActiveDirectoryMsi: Voorheen heeft de back-end alleen overgeslagenTrusted_Connection=yesvoorActiveDirectoryMsi. Andere Entra-modi die geenUSER-waarde leveren (bijvoorbeeldActiveDirectoryIntegrated,ActiveDirectoryDefaultofActiveDirectoryDeviceFlow) ontvingen nog steedsTrusted_Connection=yes, die door het ODBC-stuurprogramma werd geweigerd metFA001(Cannot use Authentication option with Integrated Security option). De oplossing detecteert elke expliciete waardeAuthentication=met een hoofdletterongevoelige overeenkomst die rekening houdt met woordgrenzen, en slaat zowelTrusted_ConnectionalsIntegrated Security=SSPIover. Wachtwoordafhandeling is ongewijzigd:SqlPassword,ActiveDirectoryPasswordenActiveDirectoryServicePrincipalblijven verzendenPWD, terwijlActiveDirectoryInteractivedeze blijft weglaten. -
KeyErrorop gesubclasseerdeDatabaseWrapper: De in de cache opgeslagen eigenschappensql_server_versionento_azure_sql_dbwaren gebaseerd op introspectie vantype(self).__dict__vancached_property, wat de eerste keer dat een subklasse vanKeyErrorze benaderde,DatabaseWrapperveroorzaakte (een regressie die in 1.7.1 is geïntroduceerd). De oplossing maakt gebruik van expliciete dictionaries op klasseniveau (_known_versions,_known_azures), die viaself.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 metAttributeErrorop Django 4.0 en later. De backend volgt nu explain-velden die bij de versie passen en genereertNotSupportedErrorcorrect 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 voorNow()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
-
FieldDoesNotExistbij het wijzigen van velden met aflopende indexvolgorde: Opgelost_alter_field()inschema.pyomindex.fields_orderste gebruiken in plaats vanindex.fieldsbij het omzetten van indexveldnamen. De vorige code gaf ruwe veld-met-sortering-tekenreeksen (bijvoorbeeld"-pub_date") door aanmodel._meta.get_field(), wat leidde totFieldDoesNotExist. 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, waardoorto_azure_sql_dbFalseretourneerde en feature-gatecontroles faalden. De oplossing voegtEDITION_AZURE_SQL_FABRIC=12toe aan_AZURE_EDITIONSen 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
CompositePrimaryKeyondersteuning: De back-end voegt gedeeltelijke ondersteuning toe voor Django 5.2CompositePrimaryKey. Voor tuple-vergelijkingen met subquery's is Django 5.2.4 of nieuwer vereist, en er blijven enkele randgevallen met samengestelde sleutels enJSONFieldbestaan. 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_commentstoegevoegd voordb_comments. - Bugfixes voor
AutoField, parameteropmaak en schemaquery’s.
Versie 1.4
Releasedatum: januari 2024
- Django 5.0-ondersteuning toegevoegd.
- Er is
db_commentondersteuning 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
Replacefuncties. - Bugfixes voor de verwerking van
OFFSETen 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_inserttoegevoegd voor het ophalen van ID’s bij bulk-insert. - Er is SQL Server 2022-ondersteuning toegevoegd.
- Er is
JSONFieldondersteuning 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.