diff --git a/src/layman/layer/db/table.py b/src/layman/layer/db/table.py index 40baeb05d..ae3814bee 100644 --- a/src/layman/layer/db/table.py +++ b/src/layman/layer/db/table.py @@ -1,3 +1,4 @@ +import logging from psycopg2 import sql from db import util as db_util @@ -7,6 +8,7 @@ from . import get_internal_table_name from .. import LAYER_TYPE, util as layer_util +logger = logging.getLogger(__name__) PATCH_MODE = patch_mode.DELETE_IF_DEPENDANT @@ -26,6 +28,18 @@ def get_layer_info(workspace, layername,): db_uri_str = None else: db_uri_str = table_uri.db_uri_str + try: + db_util.get_connection_pool(db_uri_str=db_uri_str,) + except BaseException: + result['db'] = { + 'schema': table_uri.schema, + 'table': table_uri.table, + 'geo_column': table_uri.geo_column, + 'external_uri': layer_util.redact_uri(table_uri.db_uri_str), + 'status': 'NOT_AVAILABLE', + 'error': 'Cannot connect to DB.', + } + return result try: rows = db_util.run_query(f""" SELECT schemaname, tablename, tableowner