# /// script # requires-python = ">=3.14" # dependencies = [ # "pymysql==1.1.1", # ] # /// import argparse import base64 import pymysql def run_sql(args: argparse.Namespace) -> None: sql = base64.b64decode(args.sql_b64).decode("utf-8") connection = pymysql.connect( host=args.host, port=int(args.port), user=args.user, password=args.password, database=args.db_name, cursorclass=pymysql.cursors.DictCursor, ) try: with connection.cursor() as cursor: for statement in sql.split(";"): statement = statement.strip() if statement: cursor.execute(statement) connection.commit() print(f"successfully initialised database '{args.db_name}'") finally: connection.close() if __name__ == "__main__": parser = argparse.ArgumentParser( description="Run SQL initialisation script against an AliCloud RDS instance" ) parser.add_argument("--host", required=True, help="RDS endpoint") parser.add_argument("--port", required=True, help="RDS port") parser.add_argument("--user", required=True, help="Database username") parser.add_argument("--password", required=True, help="Database password") parser.add_argument("--db-name", required=True, help="Target database name") parser.add_argument("--sql-b64", required=True, help="Base64-encoded SQL to execute") args = parser.parse_args() run_sql(args)