Files
Emanuel Almeida 692475a315 feat(v1.5.2): Execute database migrations and complete setup
- Execute all 6 migrations on Desk CRM production database
- Create missing tables: cr_lsps, cr_agent_lsps, cr_lsp_usage
- Create archive tables: cr_*_usage_archive (4 tables)
- Create system tables: cr_migrations, cr_maintenance_log
- Make all scripts executable (chmod +x)
- Total cr_* tables: 38

Migration files:
- 001_initial_schema.sql
- 002_add_lsps.sql
- 003_add_relationships.sql
- 004_add_telemetry.sql
- 005_add_archive_tables.sql
- 006_add_maintenance_log.sql

Scripts:
- session-init.sh, session-end.sh
- inject-context.sh, inject-agent-context.sh
- record-usage.sh, db-backup.sh, sync-to-mysql.sh

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 16:18:02 +00:00

90 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# db-backup.sh - Backup selectivo das tabelas cr_*
# Author: Descomplicar®
#
# Uso: ./db-backup.sh [--compress] [--tables=X,Y]
set -e
# Directório de backups (regra CLAUDE.md)
BACKUP_BASE="/media/ealmeida/Dados/Backups"
BACKUP_DIR="$BACKUP_BASE/claude-infrastructure/cr_backup_$(date +%Y%m%d_%H%M%S)"
COMPRESS=0
TABLES=""
# Parse argumentos
while [[ $# -gt 0 ]]; do
case $1 in
--compress)
COMPRESS=1
shift
;;
--tables=*)
TABLES="${1#*=}"
shift
;;
*)
shift
;;
esac
done
# Criar directório de backup
mkdir -p "$BACKUP_DIR/schema"
mkdir -p "$BACKUP_DIR/data"
# Lista de tabelas cr_* (se não especificadas)
if [[ -z "$TABLES" ]]; then
TABLES="cr_agents,cr_skills,cr_mcps,cr_lsps,cr_sdks,cr_mcp_tools,cr_plugins,cr_hooks"
TABLES="$TABLES,cr_agent_mcps,cr_agent_lsps,cr_agent_skills,cr_skill_mcps"
TABLES="$TABLES,cr_sdk_agents,cr_sdk_skills,cr_sdk_mcps,cr_agent_collaborations"
TABLES="$TABLES,cr_agent_usage,cr_skill_usage,cr_mcp_tool_usage,cr_lsp_usage"
TABLES="$TABLES,cr_decision_trees,cr_recommendations,cr_component_issues,cr_reflections"
TABLES="$TABLES,cr_migrations,cr_maintenance_log"
fi
# Criar manifest.json
cat > "$BACKUP_DIR/manifest.json" << EOF
{
"backup_id": "$(basename $BACKUP_DIR)",
"created_at": "$(date -Iseconds)",
"created_by": "descomplicar-meta-plugin",
"version": "1.5.1",
"tables": "$(echo $TABLES | tr ',' '\n' | wc -l)",
"compressed": $COMPRESS
}
EOF
echo "╔══════════════════════════════════════════════════════════════════════╗"
echo "║ DB BACKUP ║"
echo "╠══════════════════════════════════════════════════════════════════════╣"
echo "║ Backup ID: $(basename $BACKUP_DIR)"
echo "║ Output: $BACKUP_DIR/"
echo "╠══════════════════════════════════════════════════════════════════════╣"
echo "║ NOTA: Este script gera estrutura de backup. ║"
echo "║ Para dump real, usar desk-crm-v3 MCP ou mysqldump. ║"
echo "╠══════════════════════════════════════════════════════════════════════╣"
# Gerar SQL para cada tabela (esqueleto - dump real via MCP)
IFS=',' read -ra TABLE_ARRAY <<< "$TABLES"
for table in "${TABLE_ARRAY[@]}"; do
echo "-- Backup: $table" > "$BACKUP_DIR/schema/$table.sql"
echo "-- Dump via: mysqldump perfex_crm $table > $BACKUP_DIR/data/$table.sql" >> "$BACKUP_DIR/schema/$table.sql"
echo "$table"
done
if [[ $COMPRESS -eq 1 ]]; then
echo "╠══════════════════════════════════════════════════════════════════════╣"
echo "║ Compressing..."
cd "$BACKUP_BASE/claude-infrastructure"
tar -czf "$(basename $BACKUP_DIR).tar.gz" "$(basename $BACKUP_DIR)"
rm -rf "$BACKUP_DIR"
echo "║ Compressed: $(basename $BACKUP_DIR).tar.gz"
fi
echo "╠══════════════════════════════════════════════════════════════════════╣"
echo "║ Status: ✓ SUCCESS ║"
echo "╚══════════════════════════════════════════════════════════════════════╝"
exit 0