Django database backend for Microsoft SQL Server that works on non-Windows systems [UNMAINTAINED]
Switch branches/tags
Nothing to show
Clone or download
Latest commit a99ca2f Aug 13, 2018

README.rst

django-pymssql

I'm not maintaining this library because I no longer use SQL Server. If you'd like to maintain it, please file an issue and let me know.

Goals

django-pymssql is a Django database backend for Microsoft SQL Server that works on non-Windows systems.

It's a small wrapper around django-mssql that uses pymssql instead of ADO to connect to SQL Server.

It should support the same versions of Python, Django and SQL Server as django-mssql.

The original use case was to connect to SQL Server from a Django project written in Python 3 and running on Linux.

Status

django-pymssql 1.7 almost passes Django's test suite with:

  • Python 2.7 or 3.4
  • Django 1.7.x + django-mssql 1.6.1 + pymssql 2.1.1
  • Microsoft® SQL Server® 2012 Express

Usage

django-pymssql provides a Django database engine called sqlserver_pymssql:

DATABASES = {
    'default': {
        'ENGINE': 'sqlserver_pymssql',
        'HOST': '...',
        'NAME': '...',
        'USER': '...',
        'PASSWORD': '...','
        'OPTIONS': {
            # ...
        },
    },
}

Any parameter accepted by pymssql.connect can be passed in OPTIONS.

Alternatives

django-sqlserver is a fork of django-mssql that supports python-tds and pymssql in addition to ADO on Windows. Unfortunately it has diverged and it lags behind django-mssql when it comes to supporting newer Django versions.

django-pyodbc relies on pyodbc to connect to SQL Server. It requires a complex stack that doesn't bring actual benefits. Besides it doesn't appear to be very mature nor actively maintained.

Hacking

Clone Django, pymssql, django-mssql and django-pymssql and pip install -e . each of them in a virtualenv.

Create a Django tests settings file with the database engine set to 'sqlserver_pymssql' and credentials for a testing SQL Server instance.

Go to the tests subdirectory in a clone of Django and execute ./runtests.py --settings=test_pymssql.

License

django-pymssql is released under the MIT license, like django-mssql. See the LICENSE file for details. Note that pymssql is released under the LGPL.

Some database version checking code was borrowed from django-sqlserver which is also released under the MIT license.