# /// script # requires-python = ">=3.14" # dependencies = [ # "pymysql==1.1.1", # ] # /// import pymysql import argparse def destroy_rds_user_and_database(args: argparse.Namespace) -> None: connection = pymysql.connect( host=args.host, port=int(args.port), user=args.admin_user, password=args.admin_pass, cursorclass=pymysql.cursors.DictCursor, ) try: with connection.cursor() as cursor: cursor.execute(f"DROP DATABASE IF EXISTS `{args.db_name}`") cursor.execute("DROP USER IF EXISTS %s@'%%'", (args.db_user,)) cursor.execute("FLUSH PRIVILEGES") connection.commit() print(f"successfully dropped database '{args.db_name}' and user '{args.db_user}'") finally: connection.close() if __name__ == "__main__": parser = argparse.ArgumentParser( description="Drop RDS user and database if they exist" ) parser.add_argument("--host", required=True, help="RDS endpoint") parser.add_argument("--port", required=True, help="RDS port") parser.add_argument("--admin-user", required=True, help="RDS admin username") parser.add_argument("--admin-pass", required=True, help="RDS admin password") parser.add_argument("--db-name", required=True, help="Database name to drop") parser.add_argument("--db-user", required=True, help="Database username to drop") args = parser.parse_args() destroy_rds_user_and_database(args)