diff --git a/scripts/run_tests_locally-kpi-DB.sh b/scripts/run_tests_locally-kpi-DB.sh
index 895f986cced3721fbf07e34f8669f33a45c021a3..e46df46576bb47c9763a2b349fc4dad8857ff179 100755
--- a/scripts/run_tests_locally-kpi-DB.sh
+++ b/scripts/run_tests_locally-kpi-DB.sh
@@ -24,5 +24,5 @@ cd $PROJECTDIR/src
 # python3 kpi_manager/tests/test_unitary.py
 
 RCFILE=$PROJECTDIR/coverage/.coveragerc
-python3 -m pytest --log-level=INFO --log-cli-level=INFO --verbose \
-    kpi_manager/database/tests/KpiDBtests.py
\ No newline at end of file
+python3 -m pytest --log-level=DEBUG --log-cli-level=DEBUG --verbose \
+    kpi_manager/tests/test_kpi_db.py
\ No newline at end of file
diff --git a/src/kpi_manager/database/KpiModel.py b/src/kpi_manager/database/KpiModel.py
index e0f4c47a8127352b98177a0d7f2a8041700d4445..74620c33d5f05f88e83c02c7057111e1d29bf309 100644
--- a/src/kpi_manager/database/KpiModel.py
+++ b/src/kpi_manager/database/KpiModel.py
@@ -14,10 +14,8 @@
 
 import logging
 from sqlalchemy.dialects.postgresql import UUID
-from sqlalchemy import Column, Integer, String, Float, Text, ForeignKey
-# from sqlalchemy.ext.declarative import declarative_base
+from sqlalchemy import Column, Integer, String, Float, Text
 from sqlalchemy.orm import registry
-from sqlalchemy.orm import sessionmaker, relationship
 from common.proto.kpi_management_pb2 import KpiDescriptor
 
 logging.basicConfig(level=logging.INFO)
diff --git a/src/kpi_manager/database/Kpi_DB.py b/src/kpi_manager/database/Kpi_DB.py
index 2e8eeeb8cffbac2ab307b0f784df4bb07bf9eef3..6ab2c52f65a28f8c26e5c501aaaf1a591688d81f 100644
--- a/src/kpi_manager/database/Kpi_DB.py
+++ b/src/kpi_manager/database/Kpi_DB.py
@@ -12,14 +12,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import logging, time
-from typing import List, Tuple
-from sqlalchemy import select, and_
+import logging
 import sqlalchemy_utils
 from sqlalchemy.orm import sessionmaker
-from sqlalchemy.ext.declarative import declarative_base
 from kpi_manager.database.KpiEngine import KpiEngine
 from kpi_manager.database.KpiModel import Kpi as KpiModel
+from common.method_wrappers.ServiceExceptions import ( 
+    AlreadyExistsException, OperationFailedException)
 
 LOGGER = logging.getLogger(__name__)
 DB_NAME = "kpi"
@@ -31,8 +30,6 @@ class KpiDB:
             LOGGER.error('Unable to get SQLAlchemy DB Engine...')
             return False
         self.db_name = DB_NAME
-        # self.drop_database(self.db_engine)          # added to test
-        # self.create_database(self.db_engine)        # to add database 
         self.Session = sessionmaker(bind=self.db_engine)
 
     def create_database(self) -> None:
@@ -50,6 +47,7 @@ class KpiDB:
             LOGGER.debug("Tables created in the DB Name: {:}".format(self.db_name))
         except Exception as e:
             LOGGER.debug("Tables cannot be created in the kpi database. {:s}".format(str(e)))
+            raise OperationFailedException ("Tables can't be created", extra_details=["unable to create table {:}".format(e)])
 
     def verify_tables(self):
         try:
@@ -70,10 +68,12 @@ class KpiDB:
         except Exception as e:
             session.rollback()
             if "psycopg2.errors.UniqueViolation" in str(e):
-                LOGGER.debug(f"Unique key voilation: {row.__class__.__name__} table. {str(e)}")
+                LOGGER.error(f"Unique key voilation: {row.__class__.__name__} table. {str(e)}")
+                raise AlreadyExistsException(row.__class__.__name__, row,
+                                             extra_details=["Unique key voilation: {:}".format(e)] )
             else:
                 LOGGER.error(f"Failed to insert new row into {row.__class__.__name__} table. {str(e)}")
-            return False
+                raise OperationFailedException ("Deletion by column id", extra_details=["unable to delete row {:}".format(e)])
         finally:
             session.close()
     
@@ -90,7 +90,7 @@ class KpiDB:
         except Exception as e:
             session.rollback()
             LOGGER.debug(f"Failed to retrieve {model.__name__} ID. {str(e)}")
-            raise
+            raise OperationFailedException ("search by column id", extra_details=["unable to search row {:}".format(e)])
         finally:
             session.close()
     
@@ -108,6 +108,7 @@ class KpiDB:
         except Exception as e:
             session.rollback()
             LOGGER.error("Error deleting %s with %s %s: %s", model.__name__, col_name, id_to_search, e)
+            raise OperationFailedException ("Deletion by column id", extra_details=["unable to delete row {:}".format(e)])
         finally:
             session.close()
 
@@ -148,6 +149,6 @@ class KpiDB:
             return result
         except Exception as e:
             LOGGER.error(f"Error fetching filtered rows from {model.__name__} table with filters {filter_object} ::: {e}")
-            return []
+            raise OperationFailedException ("Select by filter", extra_details=["unable to apply the filter {:}".format(e)])
         finally:
             session.close()
\ No newline at end of file