Add orm version of query.

pull/669/head
Andrey 2022-09-14 13:23:35 +03:00
rodzic d31ef8b909
commit 7074eb9923
2 zmienionych plików z 11 dodań i 13 usunięć

Wyświetl plik

@ -417,9 +417,7 @@ def clean_labels_handler(args: argparse.Namespace) -> None:
db_session = process_session()
try:
clean_labels(
db_session, blockchain_type, args.block_number_cutoff, block_number
)
clean_labels(db_session, blockchain_type, args.blocks_cutoff, block_number)
finally:
db_session.close()
@ -474,7 +472,7 @@ def main() -> None:
view_state_cleaner.add_argument(
"--blocks-cutoff",
"-N",
type=str,
type=int,
help="Amount blocks back after wich data will be remove.",
)
view_state_cleaner.set_defaults(func=clean_labels_handler)

Wyświetl plik

@ -64,7 +64,7 @@ def commit_session(db_session: Session) -> None:
def clean_labels(
db_session: Session,
blockchain_type: AvailableBlockchainType,
block_number_cutoff: int,
blocks_cutoff: int,
block_number: int,
) -> None:
"""
@ -74,18 +74,18 @@ def clean_labels(
label_model = get_label_model(blockchain_type)
table = label_model.__tablename__
print(f"Cleaning labels from table {table}")
print(f"Current block number: {block_number} - blocks cutoff: {blocks_cutoff}")
print(f"Deleting labels with block_number < {block_number - blocks_cutoff}")
try:
logger.info("Removing labels from database")
db_session.execute(
"""DELETE FROM {} WHERE label =:label and block_number < :block_number""".format(
table
),
{
"label": VIEW_STATE_CRAWLER_LABEL,
"block_number": block_number - block_number_cutoff,
},
query = db_session.query(label_model).filter(
label_model.label == VIEW_STATE_CRAWLER_LABEL,
label_model.block_number < block_number - blocks_cutoff,
)
result = query.delete(synchronize_session=False)
logger.info(f"Removed {result} rows from {table}")
except Exception as e:
logger.error(f"Failed to remove labels: {e}")
db_session.rollback()