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

10 KiB

name, description, argument-hint
name description argument-hint
db-migrate Gestão de migrations do schema cr_*. Aplica, reverte e lista migrations pendentes. [up|down|status|create] [migration-name]

/descomplicar:db-migrate

Gestão de migrations para as tabelas cr_* da infraestrutura Claude Code.

Objectivo

Gerir versões do schema das tabelas cr_*, aplicando ou revertendo migrations de forma controlada.

Sintaxe

/descomplicar:db-migrate <action> [options]
Acção Descrição
status Mostra migrations pendentes e aplicadas
up Aplica próxima migration pendente
up --all Aplica todas as migrations pendentes
down Reverte última migration aplicada
create <name> Cria nova migration
Opção Descrição Default
--all Aplicar todas pendentes (com up) false
--force Não pedir confirmação false
--dry-run Mostrar SQL sem executar false

Output Esperado

╔════════════════════════════════════════════════════════════╗
║  MIGRATIONS STATUS                                         ║
╠════════════════════════════════════════════════════════════╣
║  ✓ 001_initial_schema.sql          2026-01-15  (1.2s)     ║
║  ✓ 002_add_lsps.sql                2026-01-20  (0.8s)     ║
║  ✓ 003_add_relationships.sql       2026-02-01  (0.5s)     ║
║  ○ 004_add_telemetry.sql           PENDENTE               ║
╠════════════════════════════════════════════════════════════╣
║  Aplicadas: 3 | Pendentes: 1                               ║
╚════════════════════════════════════════════════════════════╝

Estrutura de Migrations

migrations/
├── 001_initial_schema.sql          # Tabelas core
├── 002_add_relationships.sql       # Tabelas de relacionamento
├── 003_add_telemetry.sql           # Tabelas de telemetria
├── 004_add_archive_tables.sql      # Tabelas de arquivo
├── 005_add_maintenance_log.sql     # Log de manutenção
└── README.md                       # Documentação

Formato de Migration

-- Migration: 005_add_maintenance_log
-- Author: Descomplicar®
-- Date: 2026-02-04
-- Description: Adiciona tabela de log de manutenção

-- UP
CREATE TABLE IF NOT EXISTS cr_maintenance_log (
    id INT AUTO_INCREMENT PRIMARY KEY,
    operation VARCHAR(50) NOT NULL,
    table_name VARCHAR(100),
    rows_affected INT DEFAULT 0,
    details JSON,
    executed_by VARCHAR(100) DEFAULT 'system',
    executed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    status ENUM('success', 'failed', 'rolled_back') DEFAULT 'success'
);

CREATE INDEX idx_maintenance_operation ON cr_maintenance_log(operation);
CREATE INDEX idx_maintenance_date ON cr_maintenance_log(executed_at);

-- DOWN
DROP TABLE IF EXISTS cr_maintenance_log;

Tabela de Controlo

CREATE TABLE IF NOT EXISTS cr_migrations (
    id INT AUTO_INCREMENT PRIMARY KEY,
    migration_name VARCHAR(100) NOT NULL UNIQUE,
    applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    checksum VARCHAR(64),
    status ENUM('applied', 'rolled_back', 'failed') DEFAULT 'applied',
    execution_time_ms INT
);

Exemplos

Ver status

/descomplicar:db-migrate status

Output:

╔════════════════════════════════════════════════════════════════╗
║  MIGRATIONS STATUS                                             ║
╠════════════════════════════════════════════════════════════════╣
║  ✓ 001_initial_schema.sql          2026-01-15 10:30  (1.2s)   ║
║  ✓ 002_add_relationships.sql       2026-01-20 14:15  (0.8s)   ║
║  ✓ 003_add_telemetry.sql           2026-02-01 09:00  (0.5s)   ║
║  ○ 004_add_archive_tables.sql      PENDENTE                   ║
║  ○ 005_add_maintenance_log.sql     PENDENTE                   ║
╠════════════════════════════════════════════════════════════════╣
║  Aplicadas: 3 | Pendentes: 2                                   ║
╚════════════════════════════════════════════════════════════════╝

Aplicar próxima

/descomplicar:db-migrate up

Output:

╔════════════════════════════════════════════════════════════════╗
║  APPLYING MIGRATION                                            ║
╠════════════════════════════════════════════════════════════════╣
║  Migration: 004_add_archive_tables.sql                         ║
║                                                                ║
║  Creating cr_agent_usage_archive...     ✓                      ║
║  Creating cr_skill_usage_archive...     ✓                      ║
║  Creating cr_mcp_tool_usage_archive...  ✓                      ║
║  Creating cr_lsp_usage_archive...       ✓                      ║
║  Creating indexes...                    ✓                      ║
╠════════════════════════════════════════════════════════════════╣
║  Status: SUCCESS                                               ║
║  Execution time: 1.8s                                          ║
╚════════════════════════════════════════════════════════════════╝

Aplicar todas pendentes

/descomplicar:db-migrate up --all

Reverter última

/descomplicar:db-migrate down

Output:

╔════════════════════════════════════════════════════════════════╗
║  ROLLING BACK MIGRATION                                        ║
╠════════════════════════════════════════════════════════════════╣
║  Migration: 004_add_archive_tables.sql                         ║
║                                                                ║
║  Dropping cr_lsp_usage_archive...       ✓                      ║
║  Dropping cr_mcp_tool_usage_archive...  ✓                      ║
║  Dropping cr_skill_usage_archive...     ✓                      ║
║  Dropping cr_agent_usage_archive...     ✓                      ║
╠════════════════════════════════════════════════════════════════╣
║  Status: ROLLED BACK                                           ║
║  Execution time: 0.3s                                          ║
╚════════════════════════════════════════════════════════════════╝

Criar nova migration

/descomplicar:db-migrate create add_plugin_versions

Output:

Created: migrations/006_add_plugin_versions.sql

Edit the file and add your UP and DOWN SQL statements.

Dry-run

/descomplicar:db-migrate up --dry-run

Output:

╔════════════════════════════════════════════════════════════════╗
║  DRY RUN - Would execute:                                      ║
╠════════════════════════════════════════════════════════════════╣
║                                                                ║
║  CREATE TABLE IF NOT EXISTS cr_agent_usage_archive (           ║
║      id INT AUTO_INCREMENT PRIMARY KEY,                        ║
║      agent_id INT NOT NULL,                                    ║
║      ...                                                       ║
║  );                                                            ║
║                                                                ║
╚════════════════════════════════════════════════════════════════╝

Migrations Incluídas

001_initial_schema.sql

  • cr_agents, cr_skills, cr_mcps, cr_lsps, cr_sdks
  • cr_mcp_tools, cr_plugins, cr_hooks

002_add_relationships.sql

  • cr_agent_mcps, cr_agent_lsps, cr_agent_skills
  • cr_skill_mcps, cr_sdk_agents, cr_sdk_skills, cr_sdk_mcps
  • cr_agent_collaborations

003_add_telemetry.sql

  • cr_agent_usage, cr_skill_usage
  • cr_mcp_tool_usage, cr_lsp_usage

004_add_archive_tables.sql

  • *_archive tables para telemetria

005_add_maintenance_log.sql

  • cr_maintenance_log, cr_migrations

Integração

  • Skill: db-maintenance-manager
  • MCP: desk-crm-v3
  • Relacionado: /descomplicar:db-backup (antes de migrations)

Segurança

  • Checksum verificado antes de aplicar
  • Rollback automático em caso de erro
  • Log completo em cr_migrations
  • Backup recomendado antes de migrations destrutivas