aboutsummaryrefslogtreecommitdiff
path: root/gn3
diff options
context:
space:
mode:
authorJohn Nduli2024-06-11 09:19:38 +0300
committerBonfaceKilz2024-06-12 11:49:43 +0300
commit47971099b23830e17509f1aded1faf9e2381d7c8 (patch)
tree02a905316eadf438b2ea2e84d17a0a9e5446b0ec /gn3
parentf35dd4a230f0dc316e5b097d8cfbf350d8d440e5 (diff)
downloadgenenetwork3-47971099b23830e17509f1aded1faf9e2381d7c8.tar.gz
fix: log errors when an exception occurs due to db_utils
Diffstat (limited to 'gn3')
-rw-r--r--gn3/db_utils.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/gn3/db_utils.py b/gn3/db_utils.py
index e4dc81f..e08caf0 100644
--- a/gn3/db_utils.py
+++ b/gn3/db_utils.py
@@ -1,6 +1,7 @@
"""module contains all db related stuff"""
import contextlib
-from typing import Any, Iterator, Protocol, Tuple
+import logging
+from typing import Any, Iterator, Optional, Protocol, Tuple
from urllib.parse import urlparse
import MySQLdb as mdb
import xapian
@@ -24,8 +25,10 @@ class Connection(Protocol):
@contextlib.contextmanager
-def database_connection(sql_uri) -> Iterator[Connection]:
+def database_connection(sql_uri: str, logger: Optional[logging.Logger] = None) -> Iterator[Connection]:
"""Connect to MySQL database."""
+ if logger is None:
+ logger = logging.getLogger(__file__)
host, user, passwd, db_name, port = parse_db_url(sql_uri)
connection = mdb.connect(db=db_name,
user=user,
@@ -35,6 +38,7 @@ def database_connection(sql_uri) -> Iterator[Connection]:
try:
yield connection
except mdb.Error as _mbde:
+ logger.error("DB error encountered", exc_info=1)
connection.rollback()
finally:
connection.commit()