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>
This commit is contained in:
109
migrations/001_initial_schema.sql
Normal file
109
migrations/001_initial_schema.sql
Normal file
@@ -0,0 +1,109 @@
|
||||
-- Migration: 001_initial_schema
|
||||
-- Author: Descomplicar®
|
||||
-- Date: 2026-02-01
|
||||
-- Description: Tabelas core da infraestrutura Claude Code
|
||||
|
||||
-- UP
|
||||
|
||||
-- Agentes especializados
|
||||
CREATE TABLE IF NOT EXISTS cr_agents (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL UNIQUE,
|
||||
description TEXT,
|
||||
model VARCHAR(50) DEFAULT 'sonnet',
|
||||
category VARCHAR(50),
|
||||
status ENUM('active', 'inactive', 'deprecated') DEFAULT 'active',
|
||||
desk_task INT,
|
||||
file_path VARCHAR(255),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Skills invocáveis
|
||||
CREATE TABLE IF NOT EXISTS cr_skills (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL UNIQUE,
|
||||
description TEXT,
|
||||
category VARCHAR(50),
|
||||
status ENUM('active', 'inactive', 'deprecated') DEFAULT 'active',
|
||||
desk_task INT,
|
||||
file_path VARCHAR(255),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Servidores MCP
|
||||
CREATE TABLE IF NOT EXISTS cr_mcps (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL UNIQUE,
|
||||
description TEXT,
|
||||
transport ENUM('stdio', 'sse', 'http') DEFAULT 'stdio',
|
||||
status ENUM('active', 'inactive', 'error') DEFAULT 'active',
|
||||
gateway_url VARCHAR(255),
|
||||
tools_count INT DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Software Development Kits
|
||||
CREATE TABLE IF NOT EXISTS cr_sdks (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL UNIQUE,
|
||||
description TEXT,
|
||||
category VARCHAR(50),
|
||||
status ENUM('active', 'inactive', 'deprecated') DEFAULT 'active',
|
||||
version VARCHAR(20),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Ferramentas por MCP
|
||||
CREATE TABLE IF NOT EXISTS cr_mcp_tools (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
mcp_id INT NOT NULL,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
description TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (mcp_id) REFERENCES cr_mcps(id) ON DELETE CASCADE,
|
||||
UNIQUE KEY unique_mcp_tool (mcp_id, name)
|
||||
);
|
||||
|
||||
-- Plugins instalados
|
||||
CREATE TABLE IF NOT EXISTS cr_plugins (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL UNIQUE,
|
||||
version VARCHAR(20),
|
||||
marketplace VARCHAR(100),
|
||||
status ENUM('active', 'disabled', 'pending') DEFAULT 'active',
|
||||
installed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Hooks configurados
|
||||
CREATE TABLE IF NOT EXISTS cr_hooks (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
event VARCHAR(50) NOT NULL,
|
||||
plugin_name VARCHAR(100),
|
||||
command TEXT NOT NULL,
|
||||
description TEXT,
|
||||
timeout INT DEFAULT 5000,
|
||||
status ENUM('active', 'disabled') DEFAULT 'active',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Índices
|
||||
CREATE INDEX idx_agents_status ON cr_agents(status);
|
||||
CREATE INDEX idx_agents_category ON cr_agents(category);
|
||||
CREATE INDEX idx_skills_status ON cr_skills(status);
|
||||
CREATE INDEX idx_skills_category ON cr_skills(category);
|
||||
CREATE INDEX idx_mcps_status ON cr_mcps(status);
|
||||
CREATE INDEX idx_sdks_status ON cr_sdks(status);
|
||||
|
||||
-- DOWN
|
||||
DROP TABLE IF EXISTS cr_hooks;
|
||||
DROP TABLE IF EXISTS cr_plugins;
|
||||
DROP TABLE IF EXISTS cr_mcp_tools;
|
||||
DROP TABLE IF EXISTS cr_sdks;
|
||||
DROP TABLE IF EXISTS cr_mcps;
|
||||
DROP TABLE IF EXISTS cr_skills;
|
||||
DROP TABLE IF EXISTS cr_agents;
|
||||
26
migrations/002_add_lsps.sql
Normal file
26
migrations/002_add_lsps.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
-- Migration: 002_add_lsps
|
||||
-- Author: Descomplicar®
|
||||
-- Date: 2026-02-02
|
||||
-- Description: Tabelas para Language Server Protocols
|
||||
|
||||
-- UP
|
||||
|
||||
-- Language Server Protocols
|
||||
CREATE TABLE IF NOT EXISTS cr_lsps (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL UNIQUE,
|
||||
description TEXT,
|
||||
language VARCHAR(50),
|
||||
command VARCHAR(255),
|
||||
args JSON,
|
||||
status ENUM('active', 'inactive', 'error') DEFAULT 'active',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Índices
|
||||
CREATE INDEX idx_lsps_status ON cr_lsps(status);
|
||||
CREATE INDEX idx_lsps_language ON cr_lsps(language);
|
||||
|
||||
-- DOWN
|
||||
DROP TABLE IF EXISTS cr_lsps;
|
||||
116
migrations/003_add_relationships.sql
Normal file
116
migrations/003_add_relationships.sql
Normal file
@@ -0,0 +1,116 @@
|
||||
-- Migration: 003_add_relationships
|
||||
-- Author: Descomplicar®
|
||||
-- Date: 2026-02-01
|
||||
-- Description: Tabelas de relacionamento entre componentes
|
||||
|
||||
-- UP
|
||||
|
||||
-- Agent ↔ MCP
|
||||
CREATE TABLE IF NOT EXISTS cr_agent_mcps (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
agent_id INT NOT NULL,
|
||||
mcp_id INT NOT NULL,
|
||||
usage_type ENUM('primary', 'recommended', 'available') DEFAULT 'available',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (agent_id) REFERENCES cr_agents(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (mcp_id) REFERENCES cr_mcps(id) ON DELETE CASCADE,
|
||||
UNIQUE KEY unique_agent_mcp (agent_id, mcp_id)
|
||||
);
|
||||
|
||||
-- Agent ↔ LSP
|
||||
CREATE TABLE IF NOT EXISTS cr_agent_lsps (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
agent_id INT NOT NULL,
|
||||
lsp_id INT NOT NULL,
|
||||
usage_type ENUM('primary', 'recommended', 'available') DEFAULT 'available',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (agent_id) REFERENCES cr_agents(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (lsp_id) REFERENCES cr_lsps(id) ON DELETE CASCADE,
|
||||
UNIQUE KEY unique_agent_lsp (agent_id, lsp_id)
|
||||
);
|
||||
|
||||
-- Agent ↔ Skill
|
||||
CREATE TABLE IF NOT EXISTS cr_agent_skills (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
agent_id INT NOT NULL,
|
||||
skill_id INT NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (agent_id) REFERENCES cr_agents(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (skill_id) REFERENCES cr_skills(id) ON DELETE CASCADE,
|
||||
UNIQUE KEY unique_agent_skill (agent_id, skill_id)
|
||||
);
|
||||
|
||||
-- Skill ↔ MCP
|
||||
CREATE TABLE IF NOT EXISTS cr_skill_mcps (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
skill_id INT NOT NULL,
|
||||
mcp_id INT NOT NULL,
|
||||
usage_type ENUM('primary', 'recommended', 'available') DEFAULT 'available',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (skill_id) REFERENCES cr_skills(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (mcp_id) REFERENCES cr_mcps(id) ON DELETE CASCADE,
|
||||
UNIQUE KEY unique_skill_mcp (skill_id, mcp_id)
|
||||
);
|
||||
|
||||
-- SDK ↔ Agent
|
||||
CREATE TABLE IF NOT EXISTS cr_sdk_agents (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
sdk_id INT NOT NULL,
|
||||
agent_id INT NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (sdk_id) REFERENCES cr_sdks(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (agent_id) REFERENCES cr_agents(id) ON DELETE CASCADE,
|
||||
UNIQUE KEY unique_sdk_agent (sdk_id, agent_id)
|
||||
);
|
||||
|
||||
-- SDK ↔ Skill
|
||||
CREATE TABLE IF NOT EXISTS cr_sdk_skills (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
sdk_id INT NOT NULL,
|
||||
skill_id INT NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (sdk_id) REFERENCES cr_sdks(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (skill_id) REFERENCES cr_skills(id) ON DELETE CASCADE,
|
||||
UNIQUE KEY unique_sdk_skill (sdk_id, skill_id)
|
||||
);
|
||||
|
||||
-- SDK ↔ MCP
|
||||
CREATE TABLE IF NOT EXISTS cr_sdk_mcps (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
sdk_id INT NOT NULL,
|
||||
mcp_id INT NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (sdk_id) REFERENCES cr_sdks(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (mcp_id) REFERENCES cr_mcps(id) ON DELETE CASCADE,
|
||||
UNIQUE KEY unique_sdk_mcp (sdk_id, mcp_id)
|
||||
);
|
||||
|
||||
-- Agent ↔ Agent (Colaborações)
|
||||
CREATE TABLE IF NOT EXISTS cr_agent_collaborations (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
agent_id INT NOT NULL,
|
||||
collaborator_id INT NOT NULL,
|
||||
collaboration_type VARCHAR(50) DEFAULT 'peer',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (agent_id) REFERENCES cr_agents(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (collaborator_id) REFERENCES cr_agents(id) ON DELETE CASCADE,
|
||||
UNIQUE KEY unique_collaboration (agent_id, collaborator_id)
|
||||
);
|
||||
|
||||
-- Índices para performance
|
||||
CREATE INDEX idx_agent_mcps_agent ON cr_agent_mcps(agent_id);
|
||||
CREATE INDEX idx_agent_mcps_mcp ON cr_agent_mcps(mcp_id);
|
||||
CREATE INDEX idx_agent_lsps_agent ON cr_agent_lsps(agent_id);
|
||||
CREATE INDEX idx_agent_skills_agent ON cr_agent_skills(agent_id);
|
||||
CREATE INDEX idx_skill_mcps_skill ON cr_skill_mcps(skill_id);
|
||||
CREATE INDEX idx_sdk_agents_sdk ON cr_sdk_agents(sdk_id);
|
||||
|
||||
-- DOWN
|
||||
DROP TABLE IF EXISTS cr_agent_collaborations;
|
||||
DROP TABLE IF EXISTS cr_sdk_mcps;
|
||||
DROP TABLE IF EXISTS cr_sdk_skills;
|
||||
DROP TABLE IF EXISTS cr_sdk_agents;
|
||||
DROP TABLE IF EXISTS cr_skill_mcps;
|
||||
DROP TABLE IF EXISTS cr_agent_skills;
|
||||
DROP TABLE IF EXISTS cr_agent_lsps;
|
||||
DROP TABLE IF EXISTS cr_agent_mcps;
|
||||
72
migrations/004_add_telemetry.sql
Normal file
72
migrations/004_add_telemetry.sql
Normal file
@@ -0,0 +1,72 @@
|
||||
-- Migration: 004_add_telemetry
|
||||
-- Author: Descomplicar®
|
||||
-- Date: 2026-02-01
|
||||
-- Description: Tabelas de telemetria e uso
|
||||
|
||||
-- UP
|
||||
|
||||
-- Uso de agentes
|
||||
CREATE TABLE IF NOT EXISTS cr_agent_usage (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
agent_id INT NOT NULL,
|
||||
session_id VARCHAR(100),
|
||||
invocations INT DEFAULT 1,
|
||||
success_count INT DEFAULT 0,
|
||||
error_count INT DEFAULT 0,
|
||||
total_duration_ms INT DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (agent_id) REFERENCES cr_agents(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Uso de skills
|
||||
CREATE TABLE IF NOT EXISTS cr_skill_usage (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
skill_id INT NOT NULL,
|
||||
session_id VARCHAR(100),
|
||||
invocations INT DEFAULT 1,
|
||||
success_count INT DEFAULT 0,
|
||||
error_count INT DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (skill_id) REFERENCES cr_skills(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Uso de ferramentas MCP
|
||||
CREATE TABLE IF NOT EXISTS cr_mcp_tool_usage (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
mcp_id INT NOT NULL,
|
||||
tool_name VARCHAR(100) NOT NULL,
|
||||
session_id VARCHAR(100),
|
||||
invocations INT DEFAULT 1,
|
||||
success_count INT DEFAULT 0,
|
||||
error_count INT DEFAULT 0,
|
||||
avg_latency_ms INT DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (mcp_id) REFERENCES cr_mcps(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Uso de LSPs
|
||||
CREATE TABLE IF NOT EXISTS cr_lsp_usage (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
lsp_id INT NOT NULL,
|
||||
session_id VARCHAR(100),
|
||||
invocations INT DEFAULT 1,
|
||||
completions INT DEFAULT 0,
|
||||
diagnostics INT DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (lsp_id) REFERENCES cr_lsps(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Índices para queries de telemetria
|
||||
CREATE INDEX idx_agent_usage_date ON cr_agent_usage(created_at);
|
||||
CREATE INDEX idx_agent_usage_agent ON cr_agent_usage(agent_id);
|
||||
CREATE INDEX idx_skill_usage_date ON cr_skill_usage(created_at);
|
||||
CREATE INDEX idx_skill_usage_skill ON cr_skill_usage(skill_id);
|
||||
CREATE INDEX idx_mcp_tool_usage_date ON cr_mcp_tool_usage(created_at);
|
||||
CREATE INDEX idx_mcp_tool_usage_mcp ON cr_mcp_tool_usage(mcp_id);
|
||||
CREATE INDEX idx_lsp_usage_date ON cr_lsp_usage(created_at);
|
||||
|
||||
-- DOWN
|
||||
DROP TABLE IF EXISTS cr_lsp_usage;
|
||||
DROP TABLE IF EXISTS cr_mcp_tool_usage;
|
||||
DROP TABLE IF EXISTS cr_skill_usage;
|
||||
DROP TABLE IF EXISTS cr_agent_usage;
|
||||
70
migrations/005_add_archive_tables.sql
Normal file
70
migrations/005_add_archive_tables.sql
Normal file
@@ -0,0 +1,70 @@
|
||||
-- Migration: 005_add_archive_tables
|
||||
-- Author: Descomplicar®
|
||||
-- Date: 2026-02-04
|
||||
-- Description: Tabelas de arquivo para telemetria antiga
|
||||
|
||||
-- UP
|
||||
|
||||
-- Archive de uso de agentes
|
||||
CREATE TABLE IF NOT EXISTS cr_agent_usage_archive (
|
||||
id INT PRIMARY KEY,
|
||||
agent_id INT NOT NULL,
|
||||
session_id VARCHAR(100),
|
||||
invocations INT DEFAULT 1,
|
||||
success_count INT DEFAULT 0,
|
||||
error_count INT DEFAULT 0,
|
||||
total_duration_ms INT DEFAULT 0,
|
||||
created_at TIMESTAMP,
|
||||
archived_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Archive de uso de skills
|
||||
CREATE TABLE IF NOT EXISTS cr_skill_usage_archive (
|
||||
id INT PRIMARY KEY,
|
||||
skill_id INT NOT NULL,
|
||||
session_id VARCHAR(100),
|
||||
invocations INT DEFAULT 1,
|
||||
success_count INT DEFAULT 0,
|
||||
error_count INT DEFAULT 0,
|
||||
created_at TIMESTAMP,
|
||||
archived_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Archive de uso de ferramentas MCP
|
||||
CREATE TABLE IF NOT EXISTS cr_mcp_tool_usage_archive (
|
||||
id INT PRIMARY KEY,
|
||||
mcp_id INT NOT NULL,
|
||||
tool_name VARCHAR(100) NOT NULL,
|
||||
session_id VARCHAR(100),
|
||||
invocations INT DEFAULT 1,
|
||||
success_count INT DEFAULT 0,
|
||||
error_count INT DEFAULT 0,
|
||||
avg_latency_ms INT DEFAULT 0,
|
||||
created_at TIMESTAMP,
|
||||
archived_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Archive de uso de LSPs
|
||||
CREATE TABLE IF NOT EXISTS cr_lsp_usage_archive (
|
||||
id INT PRIMARY KEY,
|
||||
lsp_id INT NOT NULL,
|
||||
session_id VARCHAR(100),
|
||||
invocations INT DEFAULT 1,
|
||||
completions INT DEFAULT 0,
|
||||
diagnostics INT DEFAULT 0,
|
||||
created_at TIMESTAMP,
|
||||
archived_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Índices para consultas históricas
|
||||
CREATE INDEX idx_agent_archive_date ON cr_agent_usage_archive(created_at);
|
||||
CREATE INDEX idx_agent_archive_archived ON cr_agent_usage_archive(archived_at);
|
||||
CREATE INDEX idx_skill_archive_date ON cr_skill_usage_archive(created_at);
|
||||
CREATE INDEX idx_mcp_archive_date ON cr_mcp_tool_usage_archive(created_at);
|
||||
CREATE INDEX idx_lsp_archive_date ON cr_lsp_usage_archive(created_at);
|
||||
|
||||
-- DOWN
|
||||
DROP TABLE IF EXISTS cr_lsp_usage_archive;
|
||||
DROP TABLE IF EXISTS cr_mcp_tool_usage_archive;
|
||||
DROP TABLE IF EXISTS cr_skill_usage_archive;
|
||||
DROP TABLE IF EXISTS cr_agent_usage_archive;
|
||||
39
migrations/006_add_maintenance_log.sql
Normal file
39
migrations/006_add_maintenance_log.sql
Normal file
@@ -0,0 +1,39 @@
|
||||
-- Migration: 006_add_maintenance_log
|
||||
-- Author: Descomplicar®
|
||||
-- Date: 2026-02-04
|
||||
-- Description: Tabelas de controlo de migrations e log de manutenção
|
||||
|
||||
-- UP
|
||||
|
||||
-- Controlo de migrations
|
||||
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 DEFAULT 0
|
||||
);
|
||||
|
||||
-- Log de operações de manutenção
|
||||
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',
|
||||
error_message TEXT
|
||||
);
|
||||
|
||||
-- Índices
|
||||
CREATE INDEX idx_migrations_status ON cr_migrations(status);
|
||||
CREATE INDEX idx_maintenance_operation ON cr_maintenance_log(operation);
|
||||
CREATE INDEX idx_maintenance_date ON cr_maintenance_log(executed_at);
|
||||
CREATE INDEX idx_maintenance_status ON cr_maintenance_log(status);
|
||||
|
||||
-- DOWN
|
||||
DROP TABLE IF EXISTS cr_maintenance_log;
|
||||
DROP TABLE IF EXISTS cr_migrations;
|
||||
51
migrations/README.md
Normal file
51
migrations/README.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Migrations
|
||||
|
||||
Schema migrations para as tabelas cr_* (Claude Resources) da infraestrutura Descomplicar.
|
||||
|
||||
## Ficheiros
|
||||
|
||||
| Migration | Descrição |
|
||||
|-----------|-----------|
|
||||
| `001_initial_schema.sql` | Tabelas core (agents, skills, mcps, sdks, plugins, hooks) |
|
||||
| `002_add_lsps.sql` | Tabela de Language Server Protocols |
|
||||
| `003_add_relationships.sql` | Tabelas de relacionamento (agent_mcps, skill_mcps, etc.) |
|
||||
| `004_add_telemetry.sql` | Tabelas de uso/telemetria |
|
||||
| `005_add_archive_tables.sql` | Tabelas de arquivo para telemetria antiga |
|
||||
| `006_add_maintenance_log.sql` | Controlo de migrations e log de manutenção |
|
||||
|
||||
## Uso
|
||||
|
||||
### Ver status
|
||||
```bash
|
||||
/descomplicar:db-migrate status
|
||||
```
|
||||
|
||||
### Aplicar todas
|
||||
```bash
|
||||
/descomplicar:db-migrate up --all
|
||||
```
|
||||
|
||||
### Reverter última
|
||||
```bash
|
||||
/descomplicar:db-migrate down
|
||||
```
|
||||
|
||||
## Formato
|
||||
|
||||
Cada ficheiro contém:
|
||||
- Header com metadata (Author, Date, Description)
|
||||
- Secção `-- UP` com SQL de criação
|
||||
- Secção `-- DOWN` com SQL de reversão
|
||||
|
||||
## Criar Nova Migration
|
||||
|
||||
```bash
|
||||
/descomplicar:db-migrate create nome_da_migration
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
- As migrations são aplicadas em ordem numérica
|
||||
- O checksum é verificado antes de aplicar
|
||||
- Rollback automático em caso de erro
|
||||
- Log completo em `cr_migrations`
|
||||
Reference in New Issue
Block a user