Exemple #1
0
def execute_query(
        db_session: pg8000.Connection,
        type_object: typing.Type,
        sql_file: str,
        args: any = None,
        msg_id: str = None,
) -> list:
    """
    With a given sql_file and arguments sequentially ordered according to the sql_file,
    this function will execute a query to the database and return a list of objects
    of type_object
    :param db_session:
    :param type_object:
    :param sql_file:
    :param args:
    :param msg_id:
    :return:
    """
    try:
        file = open(sql_file, "r")
        query = file.read()
        file.close()
        cursor = db_session.cursor()
        return map_results_into_object(
            cursor=cursor,
            query=query,
            args=args,
            type_object=type_object,
        )
    except pg8000.DatabaseError as e:
        msg = (
            f'{msg_id} '
            f'Unexpected error: {e} '
            f'for sql file {sql_file} '
            f'and args {args}'
        )
        logging.getLogger().error(msg)
        db_session.rollback()
        db_session.close()
        raise DbException
    except IOError as e:
        msg = (
            f'{msg_id} '
            f'Unexpected error: {e} '
            f'for sql file {sql_file} '
            f'and args {args}'
        )
        logging.getLogger().error(msg)
        raise IOError
Exemple #2
0
def commit(
        db_session: pg8000.Connection,
        msg_id: str = None,
):
    """
    Commits the Database
    :param db_session:
    :param msg_id:
    :return:
    """
    try:
        db_session.commit()
        db_session.close()
    except pg8000.DatabaseError as e:
        msg = (
            f'{msg_id} '
            f'Unexpected error: {e} '
            f'while trying to do a '
            f'db commit'
        )
        logging.getLogger().error(msg)
        db_session.rollback()
        db_session.close()
        raise DbException