- Introduz schema_migrations para controle de migrations já aplicadas: apenas arquivos novos rodam a cada deploy, eliminando re-execuções - Renumera migrations de 001 a 026 sem lacunas (gaps em 013 e 024 fechados) - Adiciona 008_mensagens.sql: CREATE TABLE que estava ausente do repositório - Corrige idempotência de 015_configurable_triage_flow: adiciona UNIQUE (flow_id, label) e (audience_id, label) e targets explícitos no ON CONFLICT que antes duplicava dados a cada deploy - Separa dados de demonstração em database/seeds/ (só roda em dev/uat) - Remove seeds e migrations sem propósito: seeds/002 e 027 tornados obsoletos com a remoção dos opening templates - Atualiza deploy-dev.yml: loop com checagem de tracking + passo de seeds
42 lines
1.4 KiB
SQL
42 lines
1.4 KiB
SQL
-- ============================================================
|
|
-- Migration 021: Auditoria e conteúdos da IA
|
|
-- Tabelas:
|
|
-- admin_audit_logs
|
|
-- ai_knowledge_contents
|
|
-- ============================================================
|
|
|
|
CREATE TABLE IF NOT EXISTS admin_audit_logs (
|
|
id SERIAL PRIMARY KEY,
|
|
actor_user_id INTEGER REFERENCES usuarios(id) ON DELETE SET NULL,
|
|
actor_name VARCHAR(180),
|
|
action VARCHAR(120) NOT NULL,
|
|
target_type VARCHAR(80),
|
|
target_id VARCHAR(120),
|
|
details TEXT,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_admin_audit_logs_created_at
|
|
ON admin_audit_logs (created_at DESC, id DESC);
|
|
|
|
CREATE TABLE IF NOT EXISTS ai_knowledge_contents (
|
|
id SERIAL PRIMARY KEY,
|
|
title VARCHAR(220) NOT NULL,
|
|
area_id INTEGER REFERENCES areas(id) ON DELETE SET NULL,
|
|
filename VARCHAR(260),
|
|
mimetype VARCHAR(160),
|
|
file_size INTEGER,
|
|
content_base64 TEXT,
|
|
status VARCHAR(40) NOT NULL DEFAULT 'available',
|
|
notes TEXT,
|
|
created_by_user_id INTEGER REFERENCES usuarios(id) ON DELETE SET NULL,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_ai_knowledge_contents_area
|
|
ON ai_knowledge_contents (area_id, status);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_ai_knowledge_contents_created_at
|
|
ON ai_knowledge_contents (created_at DESC, id DESC);
|