- 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>
90 lines
4.1 KiB
Bash
Executable File
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
|