mirror of https://github.com/django/django.git
added description of MySQL Connector/Python
Reorganized the MySQLdb section into a "MySQL DB API Drivers" section that describes both MySQLdb and MySQL Connector/Python. Included description of the Django adaptors for these DB API drivers.
This commit is contained in:
parent
6c5f5b9a41
commit
a17fc36231
|
@ -237,11 +237,38 @@ running ``migrate``::
|
||||||
had reports that the Windows Community Server installer sets up InnoDB as
|
had reports that the Windows Community Server installer sets up InnoDB as
|
||||||
the default storage engine, for example.
|
the default storage engine, for example.
|
||||||
|
|
||||||
MySQLdb
|
.. _mysql-db-api-drivers:
|
||||||
-------
|
|
||||||
|
|
||||||
`MySQLdb`_ is the Python interface to MySQL. Version 1.2.1p2 or later is
|
MySQL DB API Drivers
|
||||||
required for full MySQL support in Django.
|
--------------------
|
||||||
|
|
||||||
|
The Python Database API is described in `PEP 249`_. MySQL has two prominent
|
||||||
|
drivers that implement this API:
|
||||||
|
|
||||||
|
.. _PEP 249: http://www.python.org/dev/peps/pep-0249/
|
||||||
|
|
||||||
|
- `MySQLdb`_ is a native driver that has been developed and supported for over
|
||||||
|
a decade by Andy Dustman.
|
||||||
|
- `MySQL Connector/Python`_ is a pure Python driver from Oracle that does not
|
||||||
|
require the MySQL client library or any Python modules outside the standard
|
||||||
|
library.
|
||||||
|
|
||||||
|
.. _MySQLdb: https://pypi.python.org/pypi/MySQL-python/1.2.4
|
||||||
|
.. _MySQL Connector/Python: http://dev.mysql.com/downloads/connector/python
|
||||||
|
|
||||||
|
Both drivers are thread-safe and both provide connection pooling. The major
|
||||||
|
difference is that MySQL Connector/Python supports Python 3.
|
||||||
|
|
||||||
|
In addition to a DB API driver, Django needs an adaptor to access the database
|
||||||
|
drivers from its ORM. Django provides an adaptor for MySQLdb while MySQL
|
||||||
|
Connector/Python includes `its own`_.
|
||||||
|
|
||||||
|
.. _its own: http://dev.mysql.com/doc/refman/5.6/en/connector-python-django-backend.html
|
||||||
|
|
||||||
|
MySQLdb
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
Django requires MySQLdb version 1.2.1p2 or later.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
If you see ``ImportError: cannot import name ImmutableSet`` when trying to
|
If you see ``ImportError: cannot import name ImmutableSet`` when trying to
|
||||||
|
@ -253,26 +280,32 @@ required for full MySQL support in Django.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
There are known issues with the way MySQLdb converts date strings into
|
There are known issues with the way MySQLdb converts date strings into
|
||||||
datetime objects. Specifically, date strings with value 0000-00-00 are valid for
|
datetime objects. Specifically, date strings with value 0000-00-00 are
|
||||||
MySQL but will be converted into None by MySQLdb.
|
valid for MySQL but will be converted into None by MySQLdb.
|
||||||
|
|
||||||
This means you should be careful while using loaddata/dumpdata with rows
|
This means you should be careful while using loaddata/dumpdata with rows
|
||||||
that may have 0000-00-00 values, as they will be converted to None.
|
that may have 0000-00-00 values, as they will be converted to None.
|
||||||
|
|
||||||
.. _MySQLdb: http://sourceforge.net/projects/mysql-python
|
.. note::
|
||||||
|
At the time of writing, the latest release of MySQLdb (1.2.4) doesn't
|
||||||
|
support Python 3. In order to use MySQLdb under Python 3, you'll have to
|
||||||
|
install an unofficial fork, such as `MySQL-for-Python-3`_.
|
||||||
|
|
||||||
Python 3
|
This port is still in alpha. In particular, it doesn't support binary
|
||||||
--------
|
data, making it impossible to use :class:`django.db.models.BinaryField`.
|
||||||
|
|
||||||
At the time of writing, the latest release of MySQLdb (1.2.4) doesn't support
|
|
||||||
Python 3. In order to use MySQL under Python 3, you'll have to install an
|
|
||||||
unofficial fork, such as `MySQL-for-Python-3`_.
|
|
||||||
|
|
||||||
This port is still in alpha. In particular, it doesn't support binary data,
|
|
||||||
making it impossible to use :class:`django.db.models.BinaryField`.
|
|
||||||
|
|
||||||
.. _MySQL-for-Python-3: https://github.com/clelland/MySQL-for-Python-3
|
.. _MySQL-for-Python-3: https://github.com/clelland/MySQL-for-Python-3
|
||||||
|
|
||||||
|
MySQL Connector/Python
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
MySQL Connector/Python is available through two `release branches`_: Generally
|
||||||
|
Available (GA, currently 1.0.x) and Development (Dev, currently 1.1.x).
|
||||||
|
The Django adapter is currently available in the Dev branch and is described
|
||||||
|
as Alpha.
|
||||||
|
|
||||||
|
.. _release branches: http://dev.mysql.com/downloads/connector/python/
|
||||||
|
|
||||||
Creating your database
|
Creating your database
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue