Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Updated the documentation for savepoints.

Apparently django.db.transaction used to be an object.
  • Loading branch information...
commit ffe41591e75fc3acf76c634bdd0899d78e91688d 1 parent 557e404
@aaugustin aaugustin authored
Showing with 17 additions and 9 deletions.
  1. +17 −9 docs/topics/db/transactions.txt
View
26 docs/topics/db/transactions.txt
@@ -193,24 +193,32 @@ Each of these functions takes a ``using`` argument which should be the name of
a database for which the behavior applies. If no ``using`` argument is
provided then the ``"default"`` database is used.
-Savepoints are controlled by three methods on the transaction object:
+Savepoints are controlled by three functions in :mod:`django.db.transaction`:
-.. method:: transaction.savepoint(using=None)
+.. function:: savepoint(using=None)
Creates a new savepoint. This marks a point in the transaction that
is known to be in a "good" state.
- Returns the savepoint ID (sid).
+ Returns the savepoint ID (``sid``).
-.. method:: transaction.savepoint_commit(sid, using=None)
+.. function:: savepoint_commit(sid, using=None)
- Updates the savepoint to include any operations that have been performed
- since the savepoint was created, or since the last commit.
+ Releases savepoint ``sid``. The changes performed since the savepoint was
+ created become part of the transaction.
-.. method:: transaction.savepoint_rollback(sid, using=None)
+.. function:: savepoint_rollback(sid, using=None)
- Rolls the transaction back to the last point at which the savepoint was
- committed.
+ Rolls back the transaction to savepoint ``sid``.
+
+These functions do nothing if savepoints aren't supported or if the database
+is in autocommit mode.
+
+In addition, there's a utility function:
+
+.. function:: clean_savepoints(using=None)
+
+ Resets the counter used to generate unique savepoint IDs.
The following example demonstrates the use of savepoints::
Please sign in to comment.
Something went wrong with that request. Please try again.