- SQL Server 2005 is no longer supported. It should not be used.
- Added support for Django 1.7.
- Schema migrations is a new Django feature that may have unexpected issues that could result in data loss or destruction of the database schema. You should inspect all generated SQL before manually applying to your production database.
- Password is masked from the connection string if there are connection errors. Thanks Martijn Pieters.
- Added Project Goals and documentation geared toward those wanting to contribute to Django-mssql. See Contributing to Django-mssql.
- Removed the dbgui management command, which didn’t work anyway.
- Datetime strings are now in a format that should work regardless of SQL language/format setting. django-mssql issue #57
- The default value for
use_legacy_date_fieldshas changed to ‘False’. This setting will be removed in a later version. Once removed, any usage of the legacy ‘datetime’ datatype will require using the provided ‘Legacy*Field’ model fields.
- SQL Server 2005 has not been tested in a while and support will officially be removed in the next release.
- Decimals are passed through ADO as strings to avoid rounding to four places. django-mssql issue #55.
- Database introspection will now identify a char type with a length over 8000 as a
TextField. django-mssql issue #53
- Minor changes to make it possible to subclass django-mssql for use on a non-Windows platform.
- This version only supports Django v1.6. Use a previous version if you are using Django v1.5 or earlier.
- Refactored DatabaseOperations.sql_flush to use a faster method of disabling/enabling constraints.
sqlserver_ado.fields.DateTimeFieldwill now do a better job of returning an aware or naive datetime.
- DateTime truncation will now support any
datetime2value without the potential of a datediff overflow exception.
- Many improvements to regex_clr
- Updated regex_clr to Visual Studio 2010
- Patterns and fields with a length greater than 4000 will now work.
- If pattern or input are NULL, it will not match instead of raising an exception.
- regex_clr auto-installs during test database creation
- Added command install_regex_clr to simplify enabling regex support for any database.
- Database introspection will now identify a
varchar(max)field as a
- DatabaseIntrospection.get_indexes now properly finds regular, non-unique, non-primary indices.
- Complete refactor of django-mssql test suite and abandoned tests that are covered by Django test suite.
- Test database is dropped in a more forcible way to avoid “database in use” errors.
- Support for Django v1.3 has been removed.
- Corrected DB-API 2 testing documentation.
- Fixed issue with slicing logic that could prevent the compiler from finding and mapping column aliases properly.
- Improved the “return ID from insert” logic so it can properly extract the column data type from user defined fields with custom data type strings.
- Fixed case for identifiers in introspection. Thanks Mikhail Denisenko.
- Added option
use_legacy_date_fields(defaults to True) to allow changing the DatabaseCreation.data_types to not use the Microsoft preferred date data types that were added with SQL Server 2008. django-mssql issue #31
- Improved accuracy of field type guessing with inspectdb. See Introspecting custom fields
- Fixed issue with identity insert using a cursor to the wrong database in a multi-database environment. Thanks Mikhail Denisenko
- Fixed constraint checking. django-mssql issue #35 Thanks Mikhail Denisenko
can_introspect_autofielddatabase feature. Django ticket #21097
- Any date related field should now return from the database as the appropriate Python type, instead of always being a datetime.
- Backend now supports doing date lookups using a string. E.g.
check_constraintswill now check all disabled and enabled constraints. This change was made to match the behavior tested by
date_interval_sqlsupport for the various date/time related datatypes. The
timedeltavalue will control whether the database will
SECOND. Trying to add seconds to a
date, or days to a
timewill generate database exceptions.
- Fixed issue with provider detection that prevented
DataTypeCompatibility=80from being automatically added to the connection string for the native client providers.
- Fixed SQL generation error that occured when ordering the query based upon a column that is not being returned.
- Added savepoint support. MS SQL Server doesn’t support savepoint commits and will no-op it. Other databases, e.g. postgresql, mostly use it as a way of freeing server resources in the middle of a transaction. Thanks Martijn Pieters.
- Minor cleanup of limit/offset SQL mangling to allow custom aggregates that require multiple column replacements. django-mssql issue #40 Thanks Martijn Pieters for initial patch and tests.
- Savepoints cannot be used with MARS connections. django-mssql issue #41
- Backend now supports returning the ID from an insert without needing an additional query. This is disabled
for SQL Server 2000 (assuming that version still works with this backend). django-mssql issue #17
- This will work even if the table has a trigger. django-mssql issue #20
- Subqueries will have their ordering removed because SQL Server only supports it when using TOP or FOR XML.
This relies upon the
Truewhen the query is a subquery, which is currently the case for all usages in Django 1.5 master. django-mssql issue #18
- UPDATE statements will now return the number of rows affected, instead of -1. django-mssql issue #19
- Apply fix for Django ticket #12192. If QuerySet slicing would result in
LIMIT 0, then it shouldn’t reach the database because there will be no response.
- Implemented DatabaseOperation
cache_key_culling_sql. Django ticket #18330
cast_avg_to_floatso that it only controls the cast for
AVGand not mapping other aggregates.
- Improved IP address detection of
HOSTsetting. django-mssql issue #21
- Set database feature
ignores_nulls_in_unique_constraints = Falsebecause MSSQL cannot ignore NULLs in unique constraints.
- django-mssql issue #26 Documented clustered index issue with Azure SQL. See Azure requires clustered indices.
- Ensure master connection connects to the correct database name when TEST_NAME is not defined.
- Connection.close() will now reset adoConn to make sure it’s gone before the CoUninitialize.
- Changed provider default from ‘SQLOLEDB’ to ‘SQLNCLI10’ with MARS enabled.
- Added RawStoredProcedureManager, which provides
raw_callprocthat works the same as
raw, except expects the name of a stored procedure that returns a result set that matches the model.
- Documented known issue with database introspection with
DEBUG = Trueand column names containing ‘%’. See Introspecting tables with ‘%’ columns.
- Fixed error with iendswith string format operator.
- Updated SQLInsertCompiler to work with Django 1.4
- Added support for
disable_constraint_checking, which is required for
loaddatato work properly.
DatabaseOperations.date_interval_sqlto allow using expressions like
- Fixed date part extraction for
- DatabaseWrapper reports vendor as ‘microsoft’.
- AVG function now matches core backend behaviors and will auto-cast to
float, instead of maintaining datatype. Set database
disable_avg_castto turn off the auto-cast behavior.
- StdDev and Variance aggregate functions are now supported and will map to the proper MSSQL named functions. Includes work around for Django ticket #18334.
- Monkey patched
django.db.backends.util.CursorWrapperto allow using cursors as ContextManagers in Python 2.7. Django ticket #17671.