fastapi-mariadb / restructure_actions_table.py
Moibe's picture
Actions es action_call
09dd636
"""
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)}")