Added documentation notes about lack of database savepoints support when using MySQL+MyISAM.

Refs #15507, #18116 and r17341, r17921.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17923 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Ramiro Morales 2012-04-21 22:52:03 +00:00
parent 64bc22be94
commit 83fc965171
2 changed files with 21 additions and 4 deletions

View File

@ -128,7 +128,7 @@ Version support
Django supports MySQL 5.0.3 and higher. Django supports MySQL 5.0.3 and higher.
`MySQL 5.0`_ adds the ``information_schema`` database, which contains detailed `MySQL 5.0`_ adds the ``information_schema`` database, which contains detailed
data on all database schema. Django's ``inspectdb`` feature uses this feature. data on all database schema. Django's ``inspectdb`` feature uses it.
.. versionchanged:: 1.5 .. versionchanged:: 1.5
The minimum version requirement of MySQL 5.0.3 was set in Django 1.5. The minimum version requirement of MySQL 5.0.3 was set in Django 1.5.
@ -141,6 +141,8 @@ MySQL when using the MyISAM storage engine, see the next section.
.. _MySQL: http://www.mysql.com/ .. _MySQL: http://www.mysql.com/
.. _MySQL 5.0: http://dev.mysql.com/doc/refman/5.0/en/index.html .. _MySQL 5.0: http://dev.mysql.com/doc/refman/5.0/en/index.html
.. _mysql-storage-engines:
Storage engines Storage engines
--------------- ---------------
@ -353,6 +355,21 @@ via the :class:`~django.db.models.Options.db_table` parameter.
.. _known issues: http://bugs.mysql.com/bug.php?id=48875 .. _known issues: http://bugs.mysql.com/bug.php?id=48875
Savepoints
----------
Both the Django ORM and MySQL (when using the InnoDB :ref:`storage engine
<mysql-storage-engines>`) support database :ref:`savepoints
<topics-db-transactions-savepoints>`, but this feature wasn't available in
Django until version 1.4 when such supports was added.
If you use the MyISAM storage engine please be aware of the fact that you will
receive database-generated errors if you try to use the :ref:`savepoint-related
methods of the transactions API <topics-db-transactions-savepoints>`. The reason
for this is that detecting the storage engine of a MySQL database/table is an
expensive operation so it was decided it isn't worth to dynamically convert
these methods in no-op's based in the results of such detection.
Notes on specific fields Notes on specific fields
------------------------ ------------------------

View File

@ -225,9 +225,9 @@ Savepoints
A savepoint is a marker within a transaction that enables you to roll back part A savepoint is a marker within a transaction that enables you to roll back part
of a transaction, rather than the full transaction. Savepoints are available of a transaction, rather than the full transaction. Savepoints are available
with the PostgreSQL 8, Oracle and MySQL (version 5.0.3 and newer, when using with the PostgreSQL 8, Oracle and MySQL (when using the InnoDB storage engine)
the InnoDB storage engine) backends. Other backends provide the savepoint backends. Other backends provide the savepoint functions, but they're empty
functions, but they're empty operations -- they don't actually do anything. operations -- they don't actually do anything.
.. versionchanged:: 1.4 .. versionchanged:: 1.4
Savepoint support for the MySQL backend was added in Django 1.4. Savepoint support for the MySQL backend was added in Django 1.4.