From 356a0f3a42a5399488cc83eba9b3d0f1cec70e8f Mon Sep 17 00:00:00 2001 From: Nekotoxin Date: Sun, 14 Aug 2022 00:01:57 +0800 Subject: [PATCH] fix: add error handler when initial django app --- casbin_adapter/adapter.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/casbin_adapter/adapter.py b/casbin_adapter/adapter.py index ee195c4..44c5461 100644 --- a/casbin_adapter/adapter.py +++ b/casbin_adapter/adapter.py @@ -1,18 +1,25 @@ -from django.conf import settings +import logging + from casbin import persist +from django.db.utils import OperationalError, ProgrammingError from .models import CasbinRule +logger = logging.getLogger(__name__) + class Adapter(persist.Adapter): """the interface for Casbin adapters.""" def load_policy(self, model): """loads all policy rules from the storage.""" - lines = CasbinRule.objects.all() + try: + lines = CasbinRule.objects.all() - for line in lines: - persist.load_policy_line(str(line), model) + for line in lines: + persist.load_policy_line(str(line), model) + except (OperationalError, ProgrammingError) as error: + logger.warning("Could not load policy from database: {}".format(error)) def _create_policy_line(self, ptype, rule): line = CasbinRule(ptype=ptype)