""" Script para alterar la tabla 'action_call' en la base de datos remota Agrega id como PRIMARY KEY y convierte usuario en UNIQUE """ import mysql.connector from dotenv import load_dotenv import os # Cargar variables de entorno load_dotenv() try: # ConexiΓ³n a la base de datos conexion = mysql.connector.connect( host=os.getenv('DB_HOST'), user=os.getenv('DB_USER'), password=os.getenv('mariadb_c'), database=os.getenv('DB_NAME'), port=int(os.getenv('DB_PORT', 3306)), autocommit=True ) cursor = conexion.cursor() # Verificar si la columna id ya existe cursor.execute(f""" SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'action_call' AND COLUMN_NAME = 'id' """) if cursor.fetchone(): print("ℹ️ El campo 'id' ya existe en la tabla") else: # Paso 1: Agregar la columna id print("πŸ“ Agregando columna id...") cursor.execute(""" ALTER TABLE actions ADD COLUMN id INT AUTO_INCREMENT UNIQUE FIRST """) print("βœ… Columna 'id' agregada") # Paso 2: Hacer id la PRIMARY KEY print("πŸ“ Configurando id como PRIMARY KEY...") cursor.execute(""" ALTER TABLE actions DROP PRIMARY KEY, ADD PRIMARY KEY (id) """) print("βœ… id configurado como PRIMARY KEY") # Paso 3: Hacer usuario UNIQUE (si no lo es ya) print("πŸ“ Configurando usuario como UNIQUE...") cursor.execute(""" ALTER TABLE actions ADD UNIQUE KEY unique_usuario (usuario) """) print("βœ… usuario configurado como UNIQUE") print("\nβœ… Tabla riestructurada exitosamente") # Mostrar estructura actualizada cursor.execute("DESCRIBE action_call") columnas = cursor.fetchall() print("\nπŸ“‹ Estructura actualizada:") for col in columnas: print(f" - {col[0]}: {col[1]}") cursor.close() conexion.close() except Exception as e: print(f"❌ Error: {str(e)}")