mxODBC Django Database Engine

mxODBC Django Database Engine

Using our mxODBC Django Database Engine, you can connect your Django-based websites to all ODBC compliant databases and data sources - in a hassle-free, robust and scalable way.
Version: 1.2.0

Introduction

The mxODBC Django Database Engine product allows you to easily connect your Django website to just about any database backend on the market today, giving you the reliability of the commercially supported eGenix.com product mxODBC and the flexibility of the ODBC standard as middle-tier architecture.

ORM and Native Database Access

With the mxODBC Django Database Engine 1.2, you receive two ways to connect to your databases:

Cross Platform Database Access

mxODBC Django Database Engine works on Windows, Linux, Mac OS X and FreeBSD, providing you with the same consistent interface, flexibility and robustness across all of these platforms.

ORM support for more database backends will follow in future releases. If you're interested in a particular backend, please let us know and we can adjust the priorities.

Features

  • Fully integrated with the Django ORM: No need to learn a new API - simply continue to use the known Django ORM interface.
  • Compatible with Django LTS: The mxODBC Django Database Engine supports Django 1.4 (LTS) and 1.5.
  • Compatible with all recommended Python versions: The database engine supports Python 2.6 and 2.7; both as UCS2 (narrow) and UCS4 (wide) Unicode variant on Unix platforms.
  • Full Unicode Support: The database engine can communicate with the database using native Unicode and 8-bit encodings such as UTF-8 or CP1252.
  • Full 64-bit Support: The underlying mxODBC 3.2 library fully supports 64-bit platforms such as Mac OS X 10.6 (Snow Leopard) or later, and 64-bit Linux systems that use unixODBC, iODBC or DataDirect ODBC managers.
  • Cross-platform Connection Objects: The database engine will automatically choose the right platform specific ODBC manager for you.
  • Per Connection Adjustable ODBC Manager Interface: mxODBC supports many different ODBC managers. The mxODBC Django Database Engine allows you to select the ODBC manager on a per-connection basis.
  • Per Connection Customization of Interface Parameters: The database engines allows adjusting many different parameters to adapt the engine to your specific database needs, should you have special requirements.

MS SQL Server ORM Features

  • MS SQL Server fully integrated into the Django ORM: Access MS SQL Server through the Django ORM, just like any other Django ORM database.
  • MS SQL Server Regular Expression Emulation: Even though MS SQL Server itself does not support regular expressions, the mxODBC Django Database Engine provides an emulation for simple regular expressions to simplify porting existing applications to a SQL Server backend.
  • MS SQL Server Aggregate Function Support: We provide a special aggregate function implementation to have the Django ORM support SQL Server aggregate functions.
  • MS SQL Server Timestamp Support: SQL Server support millisecond accuracy on timestamps. The database engine will take care of applying the necessary rounding for the microsecond precision Python timestamps in a seamless way.
  • Support for all popular SQL Server ODBC drivers: The mxODBC Django Database Engine supports the MS SQL Server Native Client on Windows, the MS SQL Server Native Client for Linux, as well as the FreeTDS ODBC driver. Commercial drivers from well-known driver vendors are also supported.
  • Support for accessing SQL Server from Windows and Unix platforms: On Windows and Linux you can use the SQL Server Native Client, on other Unix platforms and Mac OS X, the FreeTDS driver or other commercial drivers can be used.

Direct mxODBC Interface to other Databases

  • Access IBM DB2, Sybase ASE, Oracle, Teradata, Netezza, etc. directly through the proven mxODBC Database API: Import, query and save data directly to the databases using a simple to use API and all available database specific SQL dialects, capabilities and features, including ones for which the Django ORM does not provide support.
  • Fully Python DB-API 2.0 compatible interface: mxODBC support the Python DB-API 2.0, including many standard extensions and the full set of ODBC catalog methods for database introspection.
  • Full transaction control: When using the mxODBC Database API, you get full control over the database connections, including opening them on demand, in auto-commit mode, dynamically scaling the number of connections per request, etc.

System Requirements

The mxODBC Django Database Engine includes all software needed to connect Django to an ODBC manager. However, it does not include an ODBC manager or any ODBC drivers. You have to have these installed in order to be able to use the mxODBC Django Database Engine.

Windows:

On Windows, the situation is very simple: most databases come with ODBC drivers and register them with the Windows ODBC manager that's part of every Windows system.

Please consult the ODBC driver documentation for details on how to setup ODBC data sources. The mxODBC Django Database Engine Administration and User Manual also includes a section on this topic and some helpful hints in case you run into problems.

Linux, FreeBSD, Solaris, AIX:

On Unix, you will have to install one of the popular ODBC managers iODBC, unixODBC or DataDirect and then register the ODBC drivers for your database with these ODBC managers.

Linux systems usually come with at least one of these ODBC managers preinstalled. Please see the mxODBC Django Database Engine Administration and User Manual for setup instructions.

Mac OS X:

On Mac OS X, you can use the system system ODBC manager (which actually is a version of the popular iODBC manager). If this is not installed on your system, you can download it from Apple or use the alternative ODBC Manager which is maintained by Actual Technologies.

Please see the mxODBC Django Database Engine Administration and User Manual for setup instructions.

Licensing

The mxODBC Django Database Engine product is a commercial product and made available under the terms and conditions of the eGenix.com Commercial License Agreement, Version 1.3.0 (PDF file).

When purchasing a license for the mxODBC Django Database Engine product, you will receive a digitally signed Proof of Authorization authorizing you to install the product for use within one Django Project Installation, i.e. a Django installation running a single site project.

If you are using Django clusters or multiple Django site projects on a single machine, you will have to buy one Django Project license per Django site project that you want to use the engine with.

Evaluation

If you would like to evaluate the mxODBC Django Database Engine, please request an evaluation license online or send an email to the eGenix.com Sales Team and include the following information: name of the licensee, number of evaluation licenses.

We will then send you the requested number of evaluation licenses. The evaluation licenses have a built-in timeout of 30 days, but are otherwise fully functional.

If you are satisfied with the product, you can then proceed to the next section.

Buy Licenses

Production licenses for the mxODBC Django Database Engine product can be bought via our secure eGenix.com Online Shop which is hosted by ShareIT.com (a service of Digital River). Licenses are sold per Django Project Installation. For prices and volume discounts please check the mxODBC Django Database Engine Shop Page.

After purchase, you will receive the necessary license files from eGenix.com within two business by email to the address you specified in the ordering process.

If you need to buy licenses for third parties (e.g. as contractor), please consult sales@egenix.com for instructions.

If you have questions about the ordering process, or the needed number of licenses, please write to the eGenix.com Sales Team.

Documentation

The documentation for the mxODBC Django Database Engine and the underlying mxODBC is available in form of PDF files:

mxODBC Django Database Engine Administration and User Manual - HTML and PDF

This manual includes instructions on how to install, configure and use the mxODBC Django Database Engine.

mxODBC Reference Manual - HTML and PDF

The mxODBC Reference describes the included eGenix.com product mxODBC which is used by the mxODBC Django Database Engine to interface to the various database backends.

Please note that the mxODBC package included in the mxODBC Django Database Engine can only be used from within Django and is usually a different version than the stand-alone mxODBC package.
The PDF files are also available as part of the installation in the mxodbc_django/ directory.

Download

A successful installation of mxODBC Django Database Engine requires these two steps:

  1. The downloads below do not contain any license keys. You will either have to obtain evaluation licenses or buy production licenses in order to successfully install and use the package.
  2. Select the right download for your platform and Python version and then head on to the installation instructions below.
IMPORTANT:
By downloading, installing or using the eGenix mxODBC Distribution, you agree to the terms and conditions set forth in the eGenix.com Commercial License Agreement 1.3.0.

Redistribution of these files is not allowed. Please contact the eGenix Sales Team for details about redistribution possibilities and terms.

Django on Windows (x86 - 32-bit):

>>> URL MD5 SHA1 GPG

These archives include the mxODBC Django Database Engine and all necessary eGenix.com mx Products (including mxODBC) prebuilt for Django installations in one binary archive.

The Windows ODBC manager which comes with the Windows Operating System will be used by this distribution. On 64-bit Windows versions, the 32-bit variant of the ODBC manager will be used.

For instructions on how to install the egg archives, please see the installation section below.

Django on Windows (x64 - 64-bit):

>>> URL MD5 SHA1 GPG

These archives include the mxODBC Django Database Engine and all necessary eGenix.com mx Products (including mxODBC) prebuilt for Django installations in one binary archive.

The 64-bit variant of the Windows ODBC manager which comes with the Windows Operating System will be used by this distribution.

For instructions on how to install the egg archives, please see the installation section below.

Django on Linux (i686 - 32-bit):

>>> URL MD5 SHA1 GPG

These archives include the mxODBC Django Database Engine and all necessary eGenix.com mx Products (including mxODBC) prebuilt for Django installations in one binary archive.

You will need to have one of popular ODBC managers for Unix installed on the target system: iODBC 3.52.x or unixODBC 2.3.x. We have successfully tested the mxODBC Django Database Engine with iODBC 3.52.7 and unixODBC 2.3.1. The DataDirect ODBC manager is also supported.

For instructions on how to install the egg archives, please see the installation section below.

Django on Linux (x86_64 - 64-bit):

>>> URL MD5 SHA1 GPG

These archives include the mxODBC Django Database Engine and all necessary eGenix.com mx Products (including mxODBC) prebuilt for Django installations in one binary archive.

You will need to have one of popular ODBC managers for Unix installed on the target system: iODBC 3.52.x or unixODBC 2.3.x. We have successfully tested the mxODBC Django Database Engine with iODBC 3.52.7 and unixODBC 2.3.1. The DataDirect ODBC manager is also supported.

For instructions on how to install the egg archives, please see the installation section below.

Django on Mac OS X (PPC + Intel - 32-bit):

>>> URL MD5 SHA1 GPG

These archives include the mxODBC Django Database Engine and all necessary eGenix.com mx Products (including mxODBC) prebuilt for Django installations in one binary archive.

Note that Mac OS X comes with a UCS2 build of Python, so please try the UCS2 product versions first.

Mac OS X ships with the iODBC ODBC manager as system default ODBC manager. Please configure your data sources using the system ODBC manager.

For instructions on how to install the egg archives, please see the installation section below.

Django on Mac OS X (Intel - 64-bit):

>>> URL MD5 SHA1 GPG

These archives include the mxODBC Django Database Engine and all necessary eGenix.com mx Products (including mxODBC) prebuilt for Django installations in one binary archive.

Note that Mac OS X comes with a UCS2 build of Python, so please try the UCS2 product versions first.

Mac OS X ships with the iODBC ODBC manager as system default ODBC manager. Please configure your data sources using the system ODBC manager.

For instructions on how to install the egg archives, please see the installation section below.

Django on FreeBSD (i386 - 32-bit):

>>> URL MD5 SHA1 GPG

These archives include the mxODBC Django Database Engine and all necessary eGenix.com mx Products (including mxODBC) prebuilt for Django installations in one binary archive.

You will need to have one of popular ODBC managers for Unix installed on the target system: iODBC 3.52.x or unixODBC 2.3.x. We have successfully tested the mxODBC Django Database Engine with iODBC 3.52.7 and unixODBC 2.3.1.

For instructions on how to install the egg archives, please see the installation section below.

Django on FreeBSD (AMD64 - 64-bit):

>>> URL MD5 SHA1 GPG

These archives include the mxODBC Django Database Engine and all necessary eGenix.com mx Products (including mxODBC) prebuilt for Django installations in one binary archive.

You will need to have one of popular ODBC managers for Unix installed on the target system: iODBC 3.52.x or unixODBC 2.3.x. We have successfully tested the mxODBC Django Database Engine with iODBC 3.52.7 and unixODBC 2.3.1.

For instructions on how to install the egg archives, please see the installation section below.

Django on Solaris and AIX:

Solaris and AIX binaries can be made available on demand.

Source Code:

mxODBC Django Database Engine is a commercial product for which we don't distribute the source code.

Other Platforms

If you have requirements for other platforms or Django versions, please send us a note. The mxODBC Django Database Engine will compile on most Unix-like platforms where iODBC and/or unixODBC are available.

We can also prepare special versions which link directly against the database ODBC drivers. This may in some cases give you access to more advanced native database features.

Python Unicode Version (UCS2 vs. UCS4)

On Unix it is important to know whether you need to download a distribution for a narrow Unicode build of Python (UCS2) or a wide version (UCS4).

Most Unixes ship with wide UCS4 Python builds these days (including RedHat and SuSE). In order to make sure, please run the following command which will tell you what kind of Python installation you have:

bin/python -c "import sys;print(sys.maxunicode<66000)and'UCS2'or'UCS4'"

If you get errors such as "unresolved symbol PyUnicodeUCS2_AsEncodedString" when trying to load an extension from the distribution, you have likely installed an archive for a wrong Unicode version.

PyPI Compatible Package Indexes

The egg archives we provide are made available through two PyPI-style indexes which the egg tools setuptools/easy_install/pip/zc.buildout can access to automatically download and install the right egg archive.

There are two indexes, one for Python UCS2 builds:

https://downloads.egenix.com/python/index/ucs2/

and one for Python UCS4 builds:

https://downloads.egenix.com/python/index/ucs4/

Automatic Download and Installation

If you are using a Python UCS2 build, then you can install the egg archives using this command:

easy_install -i https://downloads.egenix.com/python/index/ucs2/ \ 
egenix-mxodbc-django

For UCS4 builds, please use this command:

easy_install -i https://downloads.egenix.com/python/index/ucs4/ \ 
egenix-mxodbc-django

The command line parameters for other tools such as pip are similar. Please consult their documentation for details.

Manual Download and Installation

In some cases, easy_install and other download tools cannot map the platform name to the name used in the egg archive. If you get errors during the installation, please manually download the right egg archive and then run the command directly on the downloaded egg archive:

easy_install \ 
    egenix_mxodbc_django-1.2.0-py2.7-linux-x86_64.egg

Installation

The mxODBC Django Database Engine User Manual has the details on how to install and setup the package.

We provide several different installation variants based on setuptools/distribute's easy_install, zc.buildout, the pip package manager, distutils compatible prebuilt archives and MSI installers for Windows.

Support

eGenix offers these support options:

Commercial Support

Professional level support for this product as well as all other eGenix products and Python itself is available directly from the developers at eGenix.com.

Consulting

eGenix.com offers professional consulting services for all questions and tasks around this product, including customized modifications, help with integration and on-site problem solving. Please contact sales@egenix.com for details.

Free User Support

In order for our users to keep in touch and be able to help themselves, we have created the egenix-users user mailing list.

History & Changes

Please see the change log for details regarding changes to the package between releases.

Version 1.2.0 is the first public release. Versions 1.0 and 1.1 were eGenix internal releases supporting earlier Django versions.