Please see the Django documentation on DATABASES settings for a complete list of available settings. Django-mssql builds upon these settings.

This is an example of a typical configuration:

    'default': {
        'NAME': 'my_database',
        'ENGINE': 'sqlserver_ado',
        'HOST': 'dbserver\\ss2008',
        'USER': '',
        'PASSWORD': '',


This value must be set to sqlserver_ado.


Default: ''

This defines the Microsoft SQL Server to establish a connection. This value can be a hostname or IP address.


Default: '' (Empty string)

This defines the network port to use when connecting to the server. If not defined, the standard Microsoft SQL Server port will be used.


This is the name of the SQL server database.


Default: '' (Empty string)

This defines the name of the user to use when authenticating to the server. When empty, a trusted connection (SSPI) will be used.


Default: '' (Empty string)

When a USER is defined, this field should be the plain text password to use when authenticating.


Any user or service that can read the configuration file can will be able to see the plain-text password. Trusted connections are recommended.


Default: True

This setting is specific to the django-mssql backend and controls whether or not the test database will be created and destroyed during the test creation. This is useful when integrating to a legacy database with a complex schema that is created by another application or cannot be easily created by Django’s syncdb.

    'default': {
        'NAME': 'test_legacy_database',
        'HOST': r'servername\ss2008',
        'TEST_NAME': 'test_legacy_database',
        'TEST_CREATE': False,


This is not intended to allow you to run tests against a QA, staging, or production database.


Django-mssql provides a few extra OPTIONS that are specific to this backend. Please note that while the main database settings are UPPERCASE keys, the OPTIONS dictionary keys are expected to be lowercase (due to legacy reasons).


Default: True

Set to False to disable Multiple Active Recordsets. It is not recommended to disable MARS. Without MARS enabled, you will probably end up seeing the error “Cannot create new connection because in manual or distributed transaction mode”.


This doesn’t really work properly with the “SQLOLEDB” provider.


Default: '' (Empty string)

This value will be appended to the generated connection string. Use this to provide any specific connection settings that are not controllable with the other settings.


Default: 'SQLCLI10'

The SQL provider to use when connecting to the database. If this doesn’t work, try ‘SQLCLI11’ or ‘SQLOLEDB’.


use_mars = True doesn’t always work properly with ‘SQLOLEDB’ and can result in the error “Cannot create new connection because in manual or distributed transaction mode.” if you try to filter a queryset with another queryset.


Default: False

This backend will automatically CAST fields used by the AVG function as FLOAT to match the behavior of the core database backends. Set this to True if you need SQL server to retain the datatype of fields used with AVG.

New in version 1.1.


SQL server maintains the datatype of the values used in AVG. The average of an int column will be an int. With this option set to True, AVG([1,2]) == 1, not 1.5.


Default: True

This setting alters which data types are used for the DateField, DateTimeField, and TimeField fields. When True, the fields will all use the datetime data type. When False, they will use date, datetime, and time data types.

New in version 1.4.