Desplegadas tablas de contexto IA en architect (69.62.126.110) y corp (92.112.181.188). Cambios: - Schema completo con 5 tablas: ia_contexts, ia_messages, ia_embeddings, ia_tool_calls, ia_context_metrics - Vista ia_context_summary para consultas agregadas - 2 funciones PL/pgSQL y triggers para actualización automática - 13 índices optimizados para consultas frecuentes - Script de despliegue automatizado - Documentación completa del deployment Tests: - ✅ architect: Tablas funcionando, triggers activos - ✅ corp: Tablas funcionando, triggers activos - ⚠️ deck: Servidor no disponible (pendiente) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
129 lines
3.9 KiB
Bash
Executable File
129 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script de despliegue de tablas de contexto IA
|
|
# Para servidores: architect (local), deck, corp
|
|
# Fecha: 2024-12-24
|
|
|
|
set -e # Exit on error
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SCHEMA_FILE="${SCRIPT_DIR}/ia_context_schema.sql"
|
|
SSH_KEY="$HOME/.ssh/tzzr"
|
|
|
|
# Colores para output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo "============================================================================"
|
|
echo "TZZR - Despliegue de Tablas de Contexto IA"
|
|
echo "============================================================================"
|
|
echo ""
|
|
|
|
# Función para desplegar en un servidor
|
|
deploy_to_server() {
|
|
local server_name=$1
|
|
local server_host=$2
|
|
local is_local=$3
|
|
|
|
echo -e "${YELLOW}Desplegando en ${server_name} (${server_host})...${NC}"
|
|
|
|
if [ "$is_local" = "true" ]; then
|
|
# Despliegue local en architect
|
|
echo " → Ejecutando SQL en PostgreSQL local..."
|
|
if sudo -u postgres psql -f "$SCHEMA_FILE" 2>&1 | tee /tmp/deploy_${server_name}.log; then
|
|
echo -e "${GREEN} ✅ ${server_name}: Deployment exitoso${NC}"
|
|
return 0
|
|
else
|
|
echo -e "${RED} ❌ ${server_name}: Error en deployment${NC}"
|
|
cat /tmp/deploy_${server_name}.log
|
|
return 1
|
|
fi
|
|
else
|
|
# Despliegue remoto vía SSH
|
|
echo " → Copiando schema al servidor..."
|
|
if ! scp -i "$SSH_KEY" -o StrictHostKeyChecking=no "$SCHEMA_FILE" "root@${server_host}:/tmp/ia_context_schema.sql" 2>&1; then
|
|
echo -e "${RED} ❌ ${server_name}: Error copiando archivo${NC}"
|
|
return 1
|
|
fi
|
|
|
|
echo " → Ejecutando SQL en PostgreSQL remoto..."
|
|
if ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no "root@${server_host}" \
|
|
"sudo -u postgres psql -f /tmp/ia_context_schema.sql && rm /tmp/ia_context_schema.sql" 2>&1 | tee /tmp/deploy_${server_name}.log; then
|
|
echo -e "${GREEN} ✅ ${server_name}: Deployment exitoso${NC}"
|
|
return 0
|
|
else
|
|
echo -e "${RED} ❌ ${server_name}: Error en deployment${NC}"
|
|
cat /tmp/deploy_${server_name}.log
|
|
return 1
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Verificar que el schema existe
|
|
if [ ! -f "$SCHEMA_FILE" ]; then
|
|
echo -e "${RED}Error: No se encuentra el archivo de schema: ${SCHEMA_FILE}${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Schema a desplegar: $SCHEMA_FILE"
|
|
echo ""
|
|
|
|
# Contadores
|
|
total=0
|
|
success=0
|
|
failed=0
|
|
|
|
# Desplegar en architect (local)
|
|
total=$((total + 1))
|
|
if deploy_to_server "architect" "localhost" "true"; then
|
|
success=$((success + 1))
|
|
else
|
|
failed=$((failed + 1))
|
|
fi
|
|
echo ""
|
|
|
|
# Desplegar en deck (remoto)
|
|
total=$((total + 1))
|
|
echo "Verificando conectividad a deck..."
|
|
if ssh -i "$SSH_KEY" -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@72.62.1.113 "echo 'OK'" &>/dev/null; then
|
|
if deploy_to_server "deck" "72.62.1.113" "false"; then
|
|
success=$((success + 1))
|
|
else
|
|
failed=$((failed + 1))
|
|
fi
|
|
else
|
|
echo -e "${YELLOW} ⚠️ deck: Servidor no disponible (SSH connection refused)${NC}"
|
|
failed=$((failed + 1))
|
|
fi
|
|
echo ""
|
|
|
|
# Desplegar en corp (remoto)
|
|
total=$((total + 1))
|
|
if deploy_to_server "corp" "92.112.181.188" "false"; then
|
|
success=$((success + 1))
|
|
else
|
|
failed=$((failed + 1))
|
|
fi
|
|
echo ""
|
|
|
|
# Resumen
|
|
echo "============================================================================"
|
|
echo "RESUMEN DE DESPLIEGUE"
|
|
echo "============================================================================"
|
|
echo "Total servidores: $total"
|
|
echo -e "${GREEN}Exitosos: $success${NC}"
|
|
echo -e "${RED}Fallidos: $failed${NC}"
|
|
echo ""
|
|
|
|
if [ $success -eq $total ]; then
|
|
echo -e "${GREEN}✅ DEPLOYMENT COMPLETADO EXITOSAMENTE EN TODOS LOS SERVIDORES${NC}"
|
|
exit 0
|
|
elif [ $success -gt 0 ]; then
|
|
echo -e "${YELLOW}⚠️ DEPLOYMENT COMPLETADO CON ERRORES PARCIALES${NC}"
|
|
exit 1
|
|
else
|
|
echo -e "${RED}❌ DEPLOYMENT FALLÓ EN TODOS LOS SERVIDORES${NC}"
|
|
exit 1
|
|
fi
|