From 3033a7193afcd1abdc0158e95ca3a241d8448d25 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 11 Apr 2014 22:55:07 +0200 Subject: [PATCH] Fixed #21166 -- Reset errors_occurred flag after commit and rollback. --- django/db/backends/__init__.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 96e249a079..d9f9bf1c07 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -166,6 +166,8 @@ class BaseDatabaseWrapper(object): self.validate_thread_sharing() self.validate_no_atomic_block() self._commit() + # A successful commit means that the database connection works. + self.errors_occurred = False def rollback(self): """ @@ -174,6 +176,8 @@ class BaseDatabaseWrapper(object): self.validate_thread_sharing() self.validate_no_atomic_block() self._rollback() + # A successful rollback means that the database connection works. + self.errors_occurred = False def close(self): """ @@ -381,6 +385,8 @@ class BaseDatabaseWrapper(object): self.close() return + # If an exception other than DataError or IntegrityError occurred + # since the last commit / rollback, check if the connection works. if self.errors_occurred: if self.is_usable(): self.errors_occurred = False