Files
descomplicar-meta-plugin/commands/db-cleanup.md
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

7.4 KiB

name, description, argument-hint
name description argument-hint
db-cleanup Limpeza de órfãos nas tabelas de relacionamento cr_*. Remove referências inválidas com backup automático. [--table=X] [--dry-run] [--no-backup]

/descomplicar:db-cleanup

Detecta e remove registos órfãos nas tabelas de relacionamento da infraestrutura Claude Code.

Objectivo

Garantir integridade referencial das tabelas cr_* removendo registos que apontam para entidades inexistentes (órfãos).

Sintaxe

/descomplicar:db-cleanup [options]
Opção Descrição Default
--table=X Limpar apenas tabela específica todas
--dry-run Mostrar o que seria removido sem executar false
--no-backup Não criar backup (não recomendado) false
--force Não pedir confirmação false

Output Esperado

╔════════════════════════════════════════════════════════════╗
║  DB CLEANUP                                                ║
╠════════════════════════════════════════════════════════════╣
║  Backup criado: cr_orphans_backup_20260204                 ║
║  cr_agent_mcps:    12 → 0 órfãos   ✓                       ║
║  cr_agent_skills:   3 → 0 órfãos   ✓                       ║
║  cr_skill_mcps:     5 → 0 órfãos   ✓                       ║
╠════════════════════════════════════════════════════════════╣
║  TOTAL REMOVIDO: 20 órfãos | Integridade: ✓ OK             ║
╚════════════════════════════════════════════════════════════╝

Tabelas Verificadas

Opção Descrição Default
--table=X Limpar apenas tabela específica todas
--dry-run Mostrar o que seria removido sem executar false
--no-backup Não criar backup (não recomendado) false
--force Não pedir confirmação false

Tabelas Verificadas

Tabela FK 1 FK 2
cr_agent_mcps agent_id → cr_agents mcp_id → cr_mcps
cr_agent_lsps agent_id → cr_agents lsp_id → cr_lsps
cr_agent_skills agent_id → cr_agents skill_id → cr_skills
cr_skill_mcps skill_id → cr_skills mcp_id → cr_mcps
cr_sdk_agents sdk_id → cr_sdks agent_id → cr_agents
cr_sdk_skills sdk_id → cr_sdks skill_id → cr_skills
cr_sdk_mcps sdk_id → cr_sdks mcp_id → cr_mcps
cr_agent_collaborations agent_id → cr_agents collaborator_id → cr_agents

Workflow

1. DETECTAR órfãos em cada tabela
2. CRIAR backup das linhas a remover
3. MOSTRAR resumo ao utilizador
4. PEDIR confirmação (se não --force)
5. EXECUTAR DELETE em transação
6. VALIDAR integridade
7. REPORTAR resultado

Exemplos

Dry-run (ver sem executar)

/descomplicar:db-cleanup --dry-run

Output:

╔════════════════════════════════════════════════════════════╗
║  DB CLEANUP - DRY RUN                                      ║
╠════════════════════════════════════════════════════════════╣
║  cr_agent_mcps:           12 órfãos detectados             ║
║  cr_agent_lsps:            0 órfãos detectados             ║
║  cr_agent_skills:          3 órfãos detectados             ║
║  cr_skill_mcps:            5 órfãos detectados             ║
║  cr_sdk_agents:            0 órfãos detectados             ║
║  cr_sdk_skills:            2 órfãos detectados             ║
║  cr_sdk_mcps:              0 órfãos detectados             ║
║  cr_agent_collaborations:  1 órfão detectado               ║
╠════════════════════════════════════════════════════════════╣
║  TOTAL: 23 órfãos a remover                                ║
║  Executar sem --dry-run para limpar                        ║
╚════════════════════════════════════════════════════════════╝

Limpeza completa

/descomplicar:db-cleanup

Output:

╔════════════════════════════════════════════════════════════╗
║  DB CLEANUP                                                ║
╠════════════════════════════════════════════════════════════╣
║  Backup criado: cr_orphans_backup_20260204_163500          ║
╠════════════════════════════════════════════════════════════╣
║  cr_agent_mcps:           12 → 0 órfãos   ✓                ║
║  cr_agent_skills:          3 → 0 órfãos   ✓                ║
║  cr_skill_mcps:            5 → 0 órfãos   ✓                ║
║  cr_sdk_skills:            2 → 0 órfãos   ✓                ║
║  cr_agent_collaborations:  1 → 0 órfãos   ✓                ║
╠════════════════════════════════════════════════════════════╣
║  TOTAL REMOVIDO: 23 órfãos                                 ║
║  Integridade: ✓ OK                                         ║
╚════════════════════════════════════════════════════════════╝

Tabela específica

/descomplicar:db-cleanup --table=cr_agent_mcps

SQL Executado

-- Detecção (para cada tabela)
SELECT COUNT(*) as orphans FROM cr_agent_mcps am
LEFT JOIN cr_agents a ON am.agent_id = a.id
LEFT JOIN cr_mcps m ON am.mcp_id = m.id
WHERE a.id IS NULL OR m.id IS NULL;

-- Backup
CREATE TABLE cr_orphans_backup_YYYYMMDD_HHMMSS AS
SELECT 'cr_agent_mcps' as source_table, am.*
FROM cr_agent_mcps am
LEFT JOIN cr_agents a ON am.agent_id = a.id
LEFT JOIN cr_mcps m ON am.mcp_id = m.id
WHERE a.id IS NULL OR m.id IS NULL;

-- Limpeza
DELETE FROM cr_agent_mcps
WHERE agent_id NOT IN (SELECT id FROM cr_agents)
   OR mcp_id NOT IN (SELECT id FROM cr_mcps);

Integração

  • Skill: db-maintenance-manager
  • MCP: desk-crm-v3
  • Relacionado: /descomplicar:status (detecta órfãos)

Segurança

  • Backup SEMPRE criado antes de DELETE (excepto --no-backup)
  • Operações em transação (rollback se erro)
  • Log em cr_maintenance_log
  • Não remove dados de entidades (apenas relacionamentos)