import logging import math import os import mysql.connector from dotenv import load_dotenv load_dotenv() logger = logging.getLogger(__name__) logging.basicConfig( level=logging.INFO, format='%(asctime)s %(levelname)s [%(name)s]: %(message)s' ) MYSQL_HOST = os.environ.get('MYSQL_HOST') MYSQL_USER = os.environ.get('MYSQL_USER') MYSQL_PASSWORD = os.environ.get('MYSQL_PASSWORD') ROW_COUNT = int(os.environ.get('ROW_COUNT', 100)) BATCH_SIZE = int(os.environ.get('BATCH_SIZE', 10)) def main(): try: logger.info(f'Starting delete_test_data for {ROW_COUNT} rows') batch_size = BATCH_SIZE if ROW_COUNT > BATCH_SIZE else ROW_COUNT batch_count = int(math.floor(ROW_COUNT / batch_size)) query = f'DELETE FROM sales_file_delivery.dig_sales_testfile_abacus_test WHERE batch_id = \'xavtest\' LIMIT {batch_size}' cnx = mysql.connector.connect( host=MYSQL_HOST, port=3306, user=MYSQL_USER, password=MYSQL_PASSWORD) cur = cnx.cursor() logger.info(f'Deleting {batch_count} batches of {batch_size} rows') for i in range(batch_count): logger.info(f'Deleting batch #{i}') cur.execute(query) cnx.commit() logger.info('Deleted batch') cur.close() cnx.close() logger.info('Deleted all batches') except Exception as e: logger.error(f'Error in delete_test_data: {e}') raise e if __name__ == '__main__': main()