Merge pull request #230 from whs/master

database: Ignore operation errors (#229)
This commit is contained in:
Camilo Nova 2017-08-08 09:02:38 -05:00 committed by GitHub
commit 5ec5ac7991

View file

@ -1,6 +1,7 @@
from django.core.cache import caches
from django.core.cache.backends.locmem import LocMemCache
from django.core.exceptions import ImproperlyConfigured
from django.db import OperationalError, ProgrammingError
from django.db.models.signals import post_save
from .. import Backend
@ -53,9 +54,12 @@ class DatabaseBackend(Backend):
if not keys:
return
keys = {self.add_prefix(key): key for key in keys}
stored = self._model._default_manager.filter(key__in=keys)
for const in stored:
yield keys[const.key], const.value
try:
stored = self._model._default_manager.filter(key__in=keys)
for const in stored:
yield keys[const.key], const.value
except (OperationalError, ProgrammingError):
pass
def get(self, key):
key = self.add_prefix(key)
@ -69,7 +73,7 @@ class DatabaseBackend(Backend):
if value is None:
try:
value = self._model._default_manager.get(key=key).value
except self._model.DoesNotExist:
except (OperationalError, ProgrammingError, self._model.DoesNotExist):
pass
else:
if self._cache: