Registrar en migrations los cambios de esquema aplicados hoy
Los cambios del 2026-08-03 (admin_users.cedula, turnero_consentimientos.creado_por, turnero_muestras.recibida_en_turno_id y la tabla turnero_tv_media) se aplicaron directo en producción y no quedaron en el repo, así que un entorno nuevo no los tendría. Se registran como migración idempotente (IF NOT EXISTS + guardas en el UPDATE/INSERT); verificada contra producción sin efectos. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
25a099c6ef
commit
d448ccc707
@@ -0,0 +1,44 @@
|
||||
-- 20260803 — Cambios de esquema del turnero aplicados el 2026-08-03
|
||||
-- Ya ejecutados en producción; este archivo los deja registrados para
|
||||
-- reconstruir el esquema desde cero o replicarlo en otro entorno.
|
||||
-- Todos usan IF NOT EXISTS para ser idempotentes.
|
||||
|
||||
-- 1. Cédula del profesional firmante (antes solo existía para enfermeros
|
||||
-- vía lab_enfermeras; bacteriólogos y recepcionistas no tenían dónde).
|
||||
ALTER TABLE admin_users
|
||||
ADD COLUMN IF NOT EXISTS cedula VARCHAR(30) NULL AFTER cargo;
|
||||
|
||||
-- Poblar desde el username cuando es numérico (así estaban registrados
|
||||
-- bacteriólogos, recepcionistas y superadmin).
|
||||
UPDATE admin_users SET cedula = username
|
||||
WHERE cedula IS NULL AND username REGEXP '^[0-9]{5,15}$' AND is_active = 1;
|
||||
|
||||
-- 2. Quién generó cada consentimiento del turnero. Sin esto el pie
|
||||
-- "Enviado por" mostraba al usuario que estuviera viendo el documento.
|
||||
ALTER TABLE turnero_consentimientos
|
||||
ADD COLUMN IF NOT EXISTS creado_por INT NULL AFTER estado;
|
||||
|
||||
-- 3. En qué turno se recibió una muestra que quedó pendiente de otra visita.
|
||||
-- El turno original no se modifica; esto solo permite vincularlos.
|
||||
ALTER TABLE turnero_muestras
|
||||
ADD COLUMN IF NOT EXISTS recibida_en_turno_id INT UNSIGNED NULL AFTER recibida_at;
|
||||
|
||||
-- 4. Playlist de la Pantalla TV (reemplaza la clave única turnero_tv_video
|
||||
-- de lab_config por una lista ordenable de videos e imágenes).
|
||||
CREATE TABLE IF NOT EXISTS turnero_tv_media (
|
||||
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
tipo ENUM('video','imagen') NOT NULL,
|
||||
url VARCHAR(500) NOT NULL,
|
||||
orden INT NOT NULL DEFAULT 0,
|
||||
duracion_segundos INT NOT NULL DEFAULT 8,
|
||||
activo TINYINT(1) NOT NULL DEFAULT 1,
|
||||
creado_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_orden (activo, orden)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Migrar el video único que existía en lab_config como primer ítem.
|
||||
INSERT INTO turnero_tv_media (tipo, url, orden, duracion_segundos, activo)
|
||||
SELECT 'video', valor, 0, 8, 1 FROM lab_config
|
||||
WHERE clave = 'turnero_tv_video' AND valor <> ''
|
||||
AND NOT EXISTS (SELECT 1 FROM turnero_tv_media);
|
||||
Reference in New Issue
Block a user