def add_all_rows_to_client_db_by_celery(table_name, json_list): try: connection = client_db.connect() metadata = db.MetaData() users = db.Table(table_name, metadata, autoload=True, autoload_with=client_db) query = db.insert(users) values = json_list ResultProxy = connection.execute(query, values) except Exception: traceback.print_exc()
def receive_from_client_db(table_name, column_list, row_count_in_local=None): print("Receiveing From :", table_name) connection = client_db.connect() metadata = db.MetaData() table = db.Table(table_name, metadata, autoload=True, autoload_with=client_db) query = db.select([table]) ResultProxy = connection.execute(query) print(f"Found {ResultProxy.rowcount} rows from table {table_name}") if row_count_in_local is not None: if ResultProxy.rowcount == row_count_in_local: return row_dict, data_list = {}, [] for rowproxy in ResultProxy: for column, value in rowproxy.items(): # build up the dictionary if column in column_list: row_dict = {**row_dict, **{column: value}} data_list.append(row_dict) Session = sessionmaker(bind=local_db, autocommit=False) session = Session() try: metadata = db.MetaData() table = db.Table(table_name, metadata, autoload=True, autoload_with=local_db) ResultProxy = session.execute(table.delete().where(True)) print( f"{ResultProxy.rowcount} rows deleted from local DB of table {table_name} Successfully" ) ResultProxy = session.execute(db.insert(table), data_list) print( f"{ResultProxy.rowcount} rows inserted from remote DB of table {table_name} Successfully" ) session.commit() except Exception as ex: session.rollback() print(ex) print("Somethings Wrong. Rolling Back..") finally: print("Done") session.close()
def update_client_db_with_primary_key_by_celery(table_name, json_object): connection = client_db.connect() metadata = db.MetaData() table = db.Table(table_name, metadata, autoload=True, autoload_with=client_db) update_filter_list = [] for key in table.primary_key.columns.keys(): update_filter_list.append(table.c[key] == json_object[key]) query = table.update().values(json_object).where(and_(*update_filter_list)) try: ResultProxy = connection.execute(query) print(f"Updated {ResultProxy.rowcount} rows") except: print("Update Failed") traceback.print_exc()
def delete_from_client_db_with_custom_key_by_celery( table_name, delete_key_value_pair_list): connection = client_db.connect() metadata = db.MetaData() table = db.Table(table_name, metadata, autoload=True, autoload_with=client_db) delete_filter_list = [] for key, value in delete_key_value_pair_list: delete_filter_list.append(table.c[key] == value) query = table.delete().where(and_(*delete_filter_list)) try: ResultProxy = connection.execute(query) print(f"Deleted {ResultProxy.rowcount} rows") except: print("Delete Failed") traceback.print_exc()