summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2014-03-23 23:09:26 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2014-04-10 23:21:55 +0200
commit746cded010c7ba3e2bf2df4cde32dcc9b75cb0d3 (patch)
tree81446fca6ffc551660c32f0a177099dd1b227bf6
parent9afedbef4207a86d17d9525664bcd06f403cc6f9 (diff)
[1.6.x] Fixed #22321 -- Wrapped exceptions in _set_autocommit.
Refs #21202. Backport of 3becac84 from master
-rw-r--r--django/db/backends/mysql/base.py3
-rw-r--r--django/db/backends/oracle/base.py3
-rw-r--r--django/db/backends/postgresql_psycopg2/base.py15
-rw-r--r--django/db/backends/sqlite3/base.py3
4 files changed, 14 insertions, 10 deletions
diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py
index 87401f2da9..ea04a5ec87 100644
--- a/django/db/backends/mysql/base.py
+++ b/django/db/backends/mysql/base.py
@@ -457,7 +457,8 @@ class DatabaseWrapper(BaseDatabaseWrapper):
pass
def _set_autocommit(self, autocommit):
- self.connection.autocommit(autocommit)
+ with self.wrap_database_errors:
+ self.connection.autocommit(autocommit)
def disable_constraint_checking(self):
"""
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index 7610045f67..11ab5744ce 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -625,7 +625,8 @@ class DatabaseWrapper(BaseDatabaseWrapper):
pass
def _set_autocommit(self, autocommit):
- self.connection.autocommit = autocommit
+ with self.wrap_database_errors:
+ self.connection.autocommit = autocommit
def check_constraints(self, table_names=None):
"""
diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py
index 23da101d01..d44bb5cdd9 100644
--- a/django/db/backends/postgresql_psycopg2/base.py
+++ b/django/db/backends/postgresql_psycopg2/base.py
@@ -169,14 +169,15 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.connection.set_isolation_level(isolation_level)
def _set_autocommit(self, autocommit):
- if self.psycopg2_version >= (2, 4, 2):
- self.connection.autocommit = autocommit
- else:
- if autocommit:
- level = psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT
+ with self.wrap_database_errors:
+ if self.psycopg2_version >= (2, 4, 2):
+ self.connection.autocommit = autocommit
else:
- level = self.isolation_level
- self.connection.set_isolation_level(level)
+ if autocommit:
+ level = psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT
+ else:
+ level = self.isolation_level
+ self.connection.set_isolation_level(level)
def check_constraints(self, table_names=None):
"""
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index 96b03149d7..a219178570 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -387,7 +387,8 @@ class DatabaseWrapper(BaseDatabaseWrapper):
level = ''
# 'isolation_level' is a misleading API.
# SQLite always runs at the SERIALIZABLE isolation level.
- self.connection.isolation_level = level
+ with self.wrap_database_errors:
+ self.connection.isolation_level = level
def check_constraints(self, table_names=None):
"""