#!/usr/bin/env python3
import subprocess
import os
from datetime import datetime

DB_NAME = "iapsonora_titulos"
DB_USER = "iapsonora_titulos"
DB_PASSWORD = "Ekd8QpGn_)Z!4{Xl"
DB_HOST = "127.0.0.1"
DB_PORT = "3306"

timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
output_file = f"{DB_NAME}_{timestamp}.sql"

cmd = [
    "mysqldump",
    f"--host={DB_HOST}",
    f"--port={DB_PORT}",
    f"--user={DB_USER}",
    "--single-transaction",
    "--routines",
    "--triggers",
    "--events",
    "--add-drop-table",
    "--complete-insert",
    DB_NAME,
]

env = os.environ.copy()
env["MYSQL_PWD"] = DB_PASSWORD

print(f"Extrayendo base de datos '{DB_NAME}'...")

with open(output_file, "w") as f:
    result = subprocess.run(cmd, stdout=f, stderr=subprocess.PIPE, env=env)

if result.returncode != 0:
    os.remove(output_file)
    print(f"Error: {result.stderr.decode()}")
    exit(1)

size = os.path.getsize(output_file)
print(f"Dump completado: {output_file} ({size / 1024 / 1024:.2f} MB)")
