fix: 06_master_sync.sql corregir errores SQL para MariaDB

1. ADD CONSTRAINT IF NOT EXISTS no es estándar en MariaDB < 10.5 —
   eliminado el bloque FK de admin_users.role_id (la integridad la
   gestiona la aplicación).
2. AFTER `pdf_path` fallaba porque la columna no existe en lab_form_envios —
   eliminado el AFTER, la columna se agrega al final de la tabla.

Esto evita que la migración falle en cada deploy.
This commit is contained in:
Lizandro Guarnizo
2026-03-12 16:30:03 -05:00
parent ec2135442d
commit 85fb463708
+4 -9
View File
@@ -166,21 +166,16 @@ CREATE TABLE IF NOT EXISTS `lab_config` (
ALTER TABLE `admin_users`
ADD COLUMN IF NOT EXISTS `role_id` int(11) DEFAULT NULL;
-- C1a) FK opcional: se añade solo si no existe ya
-- (MariaDB/MySQL 10.x: ADD CONSTRAINT IF NOT EXISTS no es estándar,
-- se ignora el error si ya existe usando INSERT IGNORE pattern)
ALTER TABLE `admin_users`
ADD CONSTRAINT IF NOT EXISTS `fk_admin_role`
FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`)
ON DELETE SET NULL ON UPDATE CASCADE;
-- C1a) FK opcional: omitida — ADD CONSTRAINT IF NOT EXISTS no es estándar
-- en todas las versiones de MariaDB. La columna role_id ya existe; la FK
-- se gestiona por la aplicación (integridad referencial vía código).
-- =============================================================================
-- C2) COLUMNA: lab_form_envios.hash_verificacion (prod → local)
-- =============================================================================
ALTER TABLE `lab_form_envios`
ADD COLUMN IF NOT EXISTS `hash_verificacion` char(64) DEFAULT NULL
COMMENT 'SHA-256 del PDF generado, para verificación de integridad'
AFTER `pdf_path`;
COMMENT 'SHA-256 del PDF generado, para verificación de integridad';
-- =============================================================================
-- C3) COLUMNAS: lab_formularios doc_* (prod → local / instalaciones nuevas)