예제 #1
0
def update_asset_by_column(obj, column_name, value):
    try:
        setattr(obj, column_name, value)
        session.commit()
    except:
        print("rollback")
        session.rollback()
예제 #2
0
def drop_row_by_id(model_obj, t_id, column_name="id"):
    try:
        session.query(model_obj).filter(getattr(model_obj, column_name) == t_id).delete()
        session.commit()
    except:
        print("rollback")
        session.rollback()
예제 #3
0
def remove_user_token(user_row):
    try:
        user_row.Token = None
        session.commit()
    except exc.SQLAlchemyError:
        session.rollback()
        return None

    return user_row
예제 #4
0
def add_row(model_obj, insert_dict):
    try:
        row = model_obj(**insert_dict)
        session.add(row)
        session.commit()
    except:
        print("rollback")
        session.rollback()
        return None

    return row
예제 #5
0
def update_row_column(model_obj, col_name, new_value):
    # updates a column (col_name) in a given row (model_obj) with (new_value)
    try:
        setattr(model_obj, col_name, new_value)
        session.commit()
    except exc.SQLAlchemyError as e:
        print(e)
        session.rollback()
        return None

    return model_obj
예제 #6
0
def add_user_token(user_row):
    token = generate_hex_token()
    result = search_user('Token', token)
    if len(result) <= 0:
        try:
            user_row.Token = token
            session.commit()
        except exc.SQLAlchemyError:
            session.rollback()
            return None

    return user_row
예제 #7
0
def get_all_rows_ordered_by(model, col_name='Id'):
    try:
        if force_check:
            session.commit()

        result = session.query(model).order_by(col_name).all()
    except exc.SQLAlchemyError as e:
        print(e)
        session.rollback()
        result = []

    return result
예제 #8
0
def get_all_rows(model):
    # Return all rows in given table
    try:
        if force_check:
            session.commit()

        result = session.query(model).all()
    except exc.SQLAlchemyError as e:
        print(e)
        session.rollback()
        result = []

    return result
예제 #9
0
def get_rows_by_column(model, row_id, col_name='Id'):
    try:
        if force_check:
            session.commit()

        result = session.query(model) \
            .filter(getattr(model, col_name) == row_id).all()
    except exc.SQLAlchemyError as e:
        print(e)
        session.rollback()
        result = []

    return result
예제 #10
0
def remove_rows_by_column_name(model, row_id, col_name='Id'):
    try:
        obj = session.query(model) \
            .filter(getattr(model, col_name) == row_id) \
            .delete()

        session.commit()
    except exc.SQLAlchemyError as e:
        print(e)
        session.rollback()
        return None

    return obj
예제 #11
0
def add_row(model, new_row):
    """ Adds row to database table with a new_row dictionary
    Make a dict that matches column names in given table."""
    try:
        row = model(**new_row)
        session.add(row)
        session.commit()
    except exc.SQLAlchemyError as e:
        print(e)
        session.rollback()
        return None

    return row
예제 #12
0
def get_row_by_column(model, row_id, col_name='Id'):
    # Returns First row that matches model.col_name == row_id
    try:
        if force_check:
            session.commit()

        result = session.query(model) \
            .filter(getattr(model, col_name) == row_id) \
            .one()
    except exc.SQLAlchemyError as e:
        print(e)
        session.rollback()
        result = None

    return result
예제 #13
0
def remove_row_by_id(model, row_id, col_name='Id'):
    # Removes row from table (model) that matches (model.col_name) == (row_id)
    try:
        obj = session.query(model) \
            .filter(getattr(model, col_name) == row_id) \
            .one()

        session.delete(obj)
        session.commit()
    except exc.SQLAlchemyError as e:
        print(e)
        session.rollback()
        return None

    return obj
예제 #14
0
def get_rows_like_column_value(model, col_name, value):
    """Return all rows that contains model.col_name LIKE value
    Good way to search database. """
    try:
        if force_check:
            session.commit()

        result = session.query(model) \
            .filter(getattr(model, col_name).ilike(f'%{value}%')) \
            .all()
    except exc.SQLAlchemyError as e:
        print(e)
        session.rollback()
        result = []

    return result
예제 #15
0
def add_rows(model, gen_model, amount):
    rows = []
    for i in range(amount):
        try:
            progress = int((i / amount) * 100)
            print('['+'-' * progress + '>' + ' ' * (100 - (progress+1)) + ']')
            data_dict = gen_model().__dict__
            print_dict(data_dict)
            row = model(**data_dict)
            session.add(row)
            session.commit()
            rows.append(row)
        except exc.SQLAlchemyError as e:
            print(e)
            session.rollback()

    return rows