- 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>
7.4 KiB
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)