Esempio n. 1
0
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()
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 4
0
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()