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