summaryrefslogtreecommitdiff
path: root/django/db/transaction.py
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2013-03-04 13:12:59 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2013-03-11 14:48:54 +0100
commitba5138b1c0253fcf390b7509ad7b954117b3be88 (patch)
tree3643751bf60d04bf39862940242559c1fb0529eb /django/db/transaction.py
parent14aa563f51c1a8a2ece52ca6b9e66aed9c89c0fd (diff)
Deprecated transaction.commit/rollback_unless_managed.
Since "unless managed" now means "if database-level autocommit", committing or rolling back doesn't have any effect. Restored transactional integrity in a few places that relied on automatically-started transactions with a transitory API.
Diffstat (limited to 'django/db/transaction.py')
-rw-r--r--django/db/transaction.py27
1 files changed, 19 insertions, 8 deletions
diff --git a/django/db/transaction.py b/django/db/transaction.py
index dd48e14bf4..a8e80c6c02 100644
--- a/django/db/transaction.py
+++ b/django/db/transaction.py
@@ -123,16 +123,12 @@ def managed(flag=True, using=None):
PendingDeprecationWarning, stacklevel=2)
def commit_unless_managed(using=None):
- """
- Commits changes if the system is not in managed transaction mode.
- """
- get_connection(using).commit_unless_managed()
+ warnings.warn("'commit_unless_managed' is now a no-op.",
+ PendingDeprecationWarning, stacklevel=2)
def rollback_unless_managed(using=None):
- """
- Rolls back changes if the system is not in managed transaction mode.
- """
- get_connection(using).rollback_unless_managed()
+ warnings.warn("'rollback_unless_managed' is now a no-op.",
+ PendingDeprecationWarning, stacklevel=2)
###############
# Public APIs #
@@ -280,3 +276,18 @@ def commit_manually(using=None):
leave_transaction_management(using=using)
return _transaction_func(entering, exiting, using)
+
+def commit_on_success_unless_managed(using=None):
+ """
+ Transitory API to preserve backwards-compatibility while refactoring.
+ """
+ if is_managed(using):
+ def entering(using):
+ pass
+
+ def exiting(exc_value, using):
+ set_dirty(using=using)
+
+ return _transaction_func(entering, exiting, using)
+ else:
+ return commit_on_success(using)