Esempio n. 1
0
    source_pr = PackageRegistry(es_instance=es, index_name=source_index)
    backup_pr = PackageRegistry(es_instance=es, index_name=backup_index)

    reindex(source_pr, backup_pr)

    if es.indices.exists_alias(source_index, 'packages'):
        es.indices.delete_alias(source_index, 'packages')

    target_pr = PackageRegistry(es_instance=es, index_name=target_index)
    reindex(source_pr, target_pr)

    es.indices.delete(source_index)
    es.indices.put_alias(target_index, 'packages')

    # Find orphan DB tables
    used_tables = set()
    for pkg_id in target_pr.list_models():
        rec = target_pr.get_raw(pkg_id)
        fact_table = rec[3].get('fact_table')  # model
        if fact_table is not None:
            used_tables.add(fact_table)

    engine = create_engine(os.environ['OS_CONDUCTOR_ENGINE'])
    meta = MetaData()
    meta.reflect(bind=engine, only=lambda t, _: t.startswith('fdp'))
    for table in reversed(meta.sorted_tables):
        if table in used_tables:
            logging.info('SKIPPING %s', table)
        else:
            logging.info('NOT DELETING %s', table)
Esempio n. 2
0
    backup_pr = PackageRegistry(es_instance=es, index_name=backup_index)

    reindex(source_pr, backup_pr)

    if es.indices.exists_alias(source_index, 'packages'):
        es.indices.delete_alias(source_index, 'packages')

    target_pr = PackageRegistry(es_instance=es, index_name=target_index)
    reindex(source_pr, target_pr)

    es.indices.delete(source_index)
    es.indices.put_alias(target_index, 'packages')

    # Find orphan DB tables
    used_tables = set()
    for pkg_id in target_pr.list_models():
        rec = target_pr.get_raw(pkg_id)
        fact_table = rec[3].get('fact_table')  # model
        if fact_table is not None:
            used_tables.add(fact_table)

    engine = create_engine(os.environ['OS_CONDUCTOR_ENGINE'])
    meta = MetaData()
    meta.reflect(bind=engine,
                 only=lambda t, _: t.startswith('fdp'))
    for table in reversed(meta.sorted_tables):
        if table in used_tables:
            logging.info('SKIPPING %s', table)
        else:
            logging.info('NOT DELETING %s', table)