From b9b8186e68fe5c9be425ef301c0f7d709adcb285 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 24 Jun 2022 22:00:48 -0400 Subject: [PATCH] Utility to delete old tts_inference_jobs records --- .gitignore | 4 ++ tools/delete_tts_inference_jobs.py | 61 ++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100755 tools/delete_tts_inference_jobs.py diff --git a/.gitignore b/.gitignore index d761e8f511..3cd297751e 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ .idea/ __pycache__/ _ignored_schema.rs +db.secrets +db_secrets.toml models/Wav2Lip/python/ models/tacotron2/python/ production_database_secret_connect.sh @@ -15,4 +17,6 @@ production_database_voice_clone_report_download.sh secrets.toml secrets.yaml target/ +tools/.secrets +tools/db_secrets.toml twitch_secrets.toml diff --git a/tools/delete_tts_inference_jobs.py b/tools/delete_tts_inference_jobs.py new file mode 100755 index 0000000000..b17a112f16 --- /dev/null +++ b/tools/delete_tts_inference_jobs.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +# FIXME: Needs packages 'toml' and 'mysql-connector-python'. Put in requirements.txt. + +import time +import toml +import mysql.connector + +DB_SECRETS_FILE = 'db_secrets.toml' + +# TODO: Share db-related setup when more scripts are added. + +def read_database_secrets(secrets_file = DB_SECRETS_FILE): + secrets = None + with open(secrets_file, "r") as f: + secrets = toml.load(f) + + required_keys = ['database', 'hostname', 'port', 'password', 'username'] + for key in required_keys: + if key not in secrets: + raise Exception(f"Required key '#{key}' not present") + + return secrets + +def connect_to_mysql(): + secrets = read_database_secrets() + connection = mysql.connector.connect( + host = secrets['hostname'], + port = secrets['port'], + user = secrets['username'], + password = secrets['password'], + database = secrets['database'], + ) + return connection + +connection = connect_to_mysql() +cursor = connection.cursor() + +SAFE_ID = 76000000 # Reasonably completed on 2022-06-24 +LIMIT = 100000 + +total_deleted = 0 + +keep_deleting = True + +while keep_deleting: + query = f"DELETE FROM tts_inference_jobs WHERE id < {SAFE_ID} ORDER BY ID desc LIMIT {LIMIT}" + + cursor.execute(query) + + #result = cursor.fetchall() + count = cursor.rowcount + total_deleted += count + + print(f'Deleted {count}; total deleted = {total_deleted}') + + if count < LIMIT - 1: + keep_deleting = False + + time.sleep(1) +