Spaces:
Running
Running
| #!/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") | |