fastapi-mariadb / init_db.py
Moibe's picture
Primer alta
6dc5ac9
#!/usr/bin/env python3
"""Script para crear la tabla de registro en MariaDB"""
from connection import get_connection
import sys
def init_database():
"""Crea la tabla de registro si no existe"""
conn = get_connection()
if not conn:
print("❌ Error: No se pudo conectar a la base de datos")
sys.exit(1)
try:
cursor = conn.cursor()
# SQL para crear la tabla
sql_create_table = """
CREATE TABLE IF NOT EXISTS `registro` (
`id` BINARY(16) PRIMARY KEY COMMENT 'UUID en formato binario',
`display_name` VARCHAR(255) COMMENT 'Nombre mostrado del usuario',
`pais` VARCHAR(255) COMMENT 'País del usuario',
`correo` VARCHAR(255) UNIQUE COMMENT 'Email del usuario',
`fecha_registro` DATETIME COMMENT 'Fecha de registro',
`usos` INT DEFAULT 0 COMMENT 'Cantidad de usos',
`prompt` VARCHAR(255) COMMENT 'Prompt utilizado',
`proveedor` VARCHAR(255) COMMENT 'Proveedor del servicio',
`seed` INT COMMENT 'Seed para generación',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'Fecha de creación',
KEY `idx_correo` (`correo`),
KEY `idx_pais` (`pais`),
KEY `idx_fecha_registro` (`fecha_registro`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='Tabla de registro de usuarios'
"""
cursor.execute(sql_create_table)
conn.commit()
print("✅ Tabla 'registro' creada correctamente")
# Verificar la tabla
cursor.execute("DESCRIBE `registro`")
columnas = cursor.fetchall()
print("\n📋 Estructura de la tabla:")
print("-" * 60)
for col in columnas:
print(f" {col[0]:<20} {col[1]:<30} {col[2]}")
cursor.close()
conn.close()
except Exception as e:
print(f"❌ Error al crear la tabla: {e}")
sys.exit(1)
if __name__ == "__main__":
print("🔨 Inicializando base de datos...")
print("-" * 60)
init_database()
print("\n✅ Base de datos lista para usar")