Reestructuración modular integral de servicios, reorganización de gestión en docs/ y limpieza profunda del repositorio
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
-- dtic-BITACORAs - Esquema de Base de Datos
|
||||
-- Formato I-F-D-E (Inicio, Fin, Descripción, Estado)
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS bitacoras;
|
||||
|
||||
-- Nodos del sistema (servidores, VMs, PCs)
|
||||
CREATE TABLE bitacoras.nodos (
|
||||
id SERIAL PRIMARY KEY,
|
||||
nombre VARCHAR(50) NOT NULL UNIQUE,
|
||||
ip VARCHAR(45),
|
||||
tipo VARCHAR(20) DEFAULT 'servidor',
|
||||
descripcion TEXT,
|
||||
activo BOOLEAN DEFAULT true,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Bitácoras diarias
|
||||
CREATE TABLE bitacoras.bitacoras (
|
||||
id SERIAL PRIMARY KEY,
|
||||
fecha DATE NOT NULL UNIQUE,
|
||||
resumen TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Temas (agrupadores de entradas por nodo)
|
||||
CREATE TABLE bitacoras.temas (
|
||||
id SERIAL PRIMARY KEY,
|
||||
id_tema VARCHAR(20) NOT NULL,
|
||||
titulo VARCHAR(200) NOT NULL,
|
||||
estado VARCHAR(10) DEFAULT '⏳',
|
||||
descripcion TEXT,
|
||||
bitacora_id INTEGER REFERENCES bitacoras.bitacoras(id) ON DELETE CASCADE,
|
||||
nodo_id INTEGER REFERENCES bitacoras.nodos(id),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Entradas cronológicas (formato I-F-D-E)
|
||||
CREATE TABLE bitacoras.entradas (
|
||||
id SERIAL PRIMARY KEY,
|
||||
inicio TIME NOT NULL,
|
||||
fin TIME,
|
||||
descripcion TEXT NOT NULL,
|
||||
estado VARCHAR(10) DEFAULT '⏳',
|
||||
modo CHAR(1) DEFAULT 'P' CHECK (modo IN ('P', 'R')),
|
||||
es_ia BOOLEAN DEFAULT false,
|
||||
tema_id INTEGER REFERENCES bitacoras.temas(id) ON DELETE CASCADE,
|
||||
bitacora_id INTEGER REFERENCES bitacoras.bitacoras(id) ON DELETE CASCADE,
|
||||
nodo_id INTEGER REFERENCES bitacoras.nodos(id),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Índices
|
||||
CREATE INDEX idx_bitacoras_fecha ON bitacoras.bitacoras(fecha);
|
||||
CREATE INDEX idx_entradas_bitacora ON bitacoras.entradas(bitacora_id);
|
||||
CREATE INDEX idx_entradas_nodo ON bitacoras.entradas(nodo_id);
|
||||
CREATE INDEX idx_temas_bitacora ON bitacoras.temas(bitacora_id);
|
||||
|
||||
-- Trigger para updated_at
|
||||
CREATE OR REPLACE FUNCTION bitacoras.update_timestamp()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.updated_at = CURRENT_TIMESTAMP;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER trg_nodos_updated BEFORE UPDATE ON bitacoras.nodos
|
||||
FOR EACH ROW EXECUTE FUNCTION bitacoras.update_timestamp();
|
||||
CREATE TRIGGER trg_bitacoras_updated BEFORE UPDATE ON bitacoras.bitacoras
|
||||
FOR EACH ROW EXECUTE FUNCTION bitacoras.update_timestamp();
|
||||
CREATE TRIGGER trg_temas_updated BEFORE UPDATE ON bitacoras.temas
|
||||
FOR EACH ROW EXECUTE FUNCTION bitacoras.update_timestamp();
|
||||
CREATE TRIGGER trg_entradas_updated BEFORE UPDATE ON bitacoras.entradas
|
||||
FOR EACH ROW EXECUTE FUNCTION bitacoras.update_timestamp();
|
||||
|
||||
-- Datos semilla: Nodos del proyecto
|
||||
INSERT INTO bitacoras.nodos (nombre, ip, tipo, descripcion) VALUES
|
||||
('srv-ns8', '10.0.10.8', 'servidor', 'Nodo central de gestión, GIT y Dashboard'),
|
||||
('srv-dasu', '10.0.10.205', 'hipervisor', 'Hipervisor Proxmox VE (DASUTEN)'),
|
||||
('dc-dasuten', '10.0.100.10', 'vm', 'Controlador de Dominio AD DS + DNS'),
|
||||
('sql-dasuten', '10.0.100.11', 'vm', 'Motor SQL Server 2019 Core'),
|
||||
('pcv-dasu0', '10.0.100.12', 'vm', 'VM de pruebas Win 10 LTSC'),
|
||||
('pc-dasu0', NULL, 'pc', 'PC física cliente oficina DASUTeN'),
|
||||
('srv-pmox1', '10.0.10.201', 'hipervisor', 'Pool master Proxmox'),
|
||||
('srv-pmox2', '10.0.10.202', 'hipervisor', 'Nodo Proxmox secundario'),
|
||||
('srv-pmox3', '10.0.10.203', 'hipervisor', 'Nodo Proxmox terciario (64GB RAM)'),
|
||||
('srv-xen1', '10.0.10.23', 'hipervisor', 'Citrix XenServer 7.0 (Legacy)');
|
||||
Reference in New Issue
Block a user