def update_asset_by_column(obj, column_name, value): try: setattr(obj, column_name, value) session.commit() except: print("rollback") session.rollback()
def get_highest_row(model, col_name='Id'): if force_check: session.commit() rows = session.query(model).order_by(col_name).all() if len(rows) > 0: return rows[-1]
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()
def remove_user_token(user_row): try: user_row.Token = None session.commit() except exc.SQLAlchemyError: session.rollback() return None return user_row
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
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
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
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
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
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
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
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
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
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
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
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
def add_generated_customer(amount): for _ in range(amount): variations = [Person, CompanyPerson] generated_customer = random.choice(variations)() customer = Customer( first_name=generated_customer.first_name, last_name=generated_customer.last_name, phone=generated_customer.phone, email=generated_customer.email, company_name=getattr(generated_customer, "company_name", None), organisation_number=getattr(generated_customer, "organisation_number", None), address_line_one=generated_customer.address_line_one, address_line_two=generated_customer.address_line_two, zip_code=generated_customer.zip_code, city=generated_customer.city, country=generated_customer.country ) session.add(customer) session.commit()
def get_random_row(model): if force_check: session.commit() return session.query(model).order_by(func.random()).first()
def commit_db(): session.commit()