[6f62a1a] | 1 | ### Fichero de actualización de la base de datos. |
---|
[2b2311f] | 2 | # OpenGnsys 1.1.0 |
---|
[6f62a1a] | 3 | #use ogAdmBD |
---|
| 4 | |
---|
| 5 | # Eliminar procedimiento para evitar errores de ejecución. |
---|
| 6 | DROP PROCEDURE IF EXISTS addcols; |
---|
| 7 | # Procedimiento para actualización condicional de tablas. |
---|
| 8 | delimiter '//' |
---|
| 9 | CREATE PROCEDURE addcols() BEGIN |
---|
| 10 | # Añadir campo para incluir aulas en proyecto Remote PC (ticket #708). |
---|
| 11 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 12 | WHERE COLUMN_NAME='inremotepc' AND TABLE_NAME='aulas' AND TABLE_SCHEMA=DATABASE()) |
---|
| 13 | THEN |
---|
| 14 | ALTER TABLE aulas |
---|
| 15 | ADD inremotepc TINYINT DEFAULT 0; |
---|
| 16 | END IF; |
---|
[750388b] | 17 | # Añadir campo para incluir imágenes en proyecto Remote PC (ticket #708). |
---|
| 18 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 19 | WHERE COLUMN_NAME='inremotepc' AND TABLE_NAME='imagenes' AND TABLE_SCHEMA=DATABASE()) |
---|
| 20 | THEN |
---|
| 21 | ALTER TABLE imagenes |
---|
| 22 | ADD inremotepc TINYINT DEFAULT 0; |
---|
| 23 | END IF; |
---|
[6f62a1a] | 24 | # Añadir campo para clave de acceso a la API REST (ticket #708). |
---|
| 25 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 26 | WHERE COLUMN_NAME='apikey' AND TABLE_NAME='usuarios' AND TABLE_SCHEMA=DATABASE()) |
---|
| 27 | THEN |
---|
| 28 | ALTER TABLE usuarios |
---|
| 29 | ADD apikey VARCHAR(32) NOT NULL DEFAULT ''; |
---|
| 30 | END IF; |
---|
| 31 | # Añadir porcentaje de uso de sistema de ficheros (ticket #711) |
---|
| 32 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 33 | WHERE COLUMN_NAME='uso' AND TABLE_NAME='ordenadores_particiones' AND TABLE_SCHEMA=DATABASE()) |
---|
| 34 | THEN |
---|
| 35 | ALTER TABLE ordenadores_particiones |
---|
| 36 | ADD uso TINYINT NOT NULL DEFAULT 0; |
---|
| 37 | END IF; |
---|
| 38 | # Añadir nº de serie (ticket #713) |
---|
| 39 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 40 | WHERE COLUMN_NAME='numserie' AND TABLE_NAME='ordenadores' AND TABLE_SCHEMA=DATABASE()) |
---|
| 41 | THEN |
---|
| 42 | ALTER TABLE ordenadores |
---|
| 43 | ADD numserie varchar(25) DEFAULT NULL AFTER nombreordenador; |
---|
| 44 | END IF; |
---|
[b8157d6] | 45 | # Añadir campo para clave de acceso a la API REST de OGAgent (ticket #718). |
---|
| 46 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 47 | WHERE COLUMN_NAME='agentkey' AND TABLE_NAME='ordenadores' AND TABLE_SCHEMA=DATABASE()) |
---|
| 48 | THEN |
---|
| 49 | ALTER TABLE ordenadores |
---|
| 50 | ADD agentkey VARCHAR(32) DEFAULT NULL; |
---|
| 51 | END IF; |
---|
[e8d2851] | 52 | # Añadir índice para mostrar correctamente el formulario de estado. |
---|
[0cfe47a] | 53 | IF NOT EXISTS (SELECT * FROM information_schema.STATISTICS |
---|
| 54 | WHERE INDEX_NAME='idaulaip' AND TABLE_NAME='ordenadores' AND TABLE_SCHEMA=DATABASE()) |
---|
[e8d2851] | 55 | THEN |
---|
| 56 | ALTER TABLE ordenadores |
---|
| 57 | ADD KEY idaulaip (idaula ASC, ip ASC); |
---|
| 58 | END IF; |
---|
[6f62a1a] | 59 | # Eliminar campos no usado en inventario de hardware (ticket #713). |
---|
| 60 | IF EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 61 | WHERE COLUMN_NAME='pci' AND TABLE_NAME='tipohardwares' AND TABLE_SCHEMA=DATABASE()) |
---|
| 62 | THEN |
---|
| 63 | ALTER TABLE tipohardwares |
---|
| 64 | DROP pci; |
---|
| 65 | END IF; |
---|
[750388b] | 66 | # Añadir servidor de sincronización horaria NTP (ticket #725). |
---|
| 67 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 68 | WHERE COLUMN_NAME='ntp' AND TABLE_NAME='aulas' AND TABLE_SCHEMA=DATABASE()) |
---|
| 69 | THEN |
---|
| 70 | ALTER TABLE aulas |
---|
| 71 | ADD ntp VARCHAR(30) AFTER proxy; |
---|
| 72 | END IF; |
---|
[56529d2] | 73 | # Directorios en repo para distintas UO (ticket #678). |
---|
| 74 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 75 | WHERE COLUMN_NAME='ogunit' AND TABLE_NAME='entidades' AND TABLE_SCHEMA=DATABASE()) |
---|
[b0cd6af] | 76 | THEN |
---|
[56529d2] | 77 | ALTER TABLE entidades |
---|
| 78 | ADD ogunit TINYINT(1) NOT NULL DEFAULT 0; |
---|
| 79 | END IF; |
---|
| 80 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 81 | WHERE COLUMN_NAME='directorio' AND TABLE_NAME='centros' AND TABLE_SCHEMA=DATABASE()) |
---|
[b0cd6af] | 82 | THEN |
---|
[56529d2] | 83 | ALTER TABLE centros |
---|
| 84 | ADD directorio VARCHAR(50) DEFAULT ''; |
---|
| 85 | END IF; |
---|
[84fa8d6] | 86 | # Nº de revisión de imagen (ticket #737). |
---|
| 87 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 88 | WHERE COLUMN_NAME='revision' AND TABLE_NAME='imagenes' AND TABLE_SCHEMA=DATABASE()) |
---|
| 89 | THEN |
---|
| 90 | ALTER TABLE imagenes |
---|
| 91 | ADD revision SMALLINT UNSIGNED NOT NULL DEFAULT 0 AFTER nombreca; |
---|
| 92 | END IF; |
---|
| 93 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 94 | WHERE COLUMN_NAME='revision' AND TABLE_NAME='ordenadores_particiones' AND TABLE_SCHEMA=DATABASE()) |
---|
| 95 | THEN |
---|
| 96 | ALTER TABLE ordenadores_particiones |
---|
| 97 | ADD revision SMALLINT UNSIGNED NOT NULL DEFAULT 0 AFTER idimagen; |
---|
| 98 | END IF; |
---|
[212d995] | 99 | # Incluir campo sistema operativo en el perfil de software (tickets #738 #713) |
---|
| 100 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 101 | WHERE COLUMN_NAME='idnombreso' AND TABLE_NAME='perfilessoft' AND TABLE_SCHEMA=DATABASE()) |
---|
| 102 | THEN |
---|
| 103 | ALTER TABLE perfilessoft |
---|
| 104 | ADD idnombreso SMALLINT UNSIGNED AFTER idperfilsoft; |
---|
| 105 | END IF; |
---|
[15acccd] | 106 | # Añadir campo para clave de acceso a la API REST del repositorio (ticket #743). |
---|
| 107 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
| 108 | WHERE COLUMN_NAME='apikey' AND TABLE_NAME='repositorios' AND TABLE_SCHEMA=DATABASE()) |
---|
| 109 | THEN |
---|
| 110 | ALTER TABLE repositorios |
---|
| 111 | ADD apikey VARCHAR(32) NOT NULL DEFAULT ''; |
---|
| 112 | END IF; |
---|
[2b2311f] | 113 | # Codificar claves de los usuarios, si fuese necesario (ticket #778) |
---|
| 114 | IF (SELECT CHARACTER_MAXIMUM_LENGTH FROM information_schema.COLUMNS |
---|
| 115 | WHERE COLUMN_NAME='pasguor' AND TABLE_NAME='usuarios' AND TABLE_SCHEMA=DATABASE() != 56) |
---|
| 116 | THEN |
---|
| 117 | ALTER TABLE usuarios |
---|
| 118 | MODIFY pasguor VARCHAR(56) NOT NULL DEFAULT ''; |
---|
| 119 | INSERT INTO usuarios (idusuario, pasguor) |
---|
| 120 | SELECT idusuario, pasguor FROM usuarios |
---|
| 121 | ON DUPLICATE KEY UPDATE |
---|
| 122 | pasguor=SHA2(VALUES(pasguor),224); |
---|
| 123 | END IF; |
---|
[6f62a1a] | 124 | END// |
---|
| 125 | # Ejecutar actualización condicional. |
---|
| 126 | delimiter ';' |
---|
| 127 | CALL addcols(); |
---|
| 128 | DROP PROCEDURE addcols; |
---|
| 129 | |
---|
[a616248] | 130 | # Nuevos tipos de particiones y de sistemas de ficheros. |
---|
[6f62a1a] | 131 | INSERT INTO tipospar (codpar, tipopar, clonable) VALUES |
---|
| 132 | (CONV('A9',16,10), 'NETBSD', 1), |
---|
| 133 | (CONV('2700',16,10), 'WIN-RECOV', 1), |
---|
| 134 | (CONV('8302',16,10), 'LINUX', 1), |
---|
| 135 | (CONV('A504',16,10), 'FREEBSD', 1), |
---|
| 136 | (CONV('A901',16,10), 'NETBSD-SWAP', 0), |
---|
| 137 | (CONV('A902',16,10), 'NETBSD', 1), |
---|
| 138 | (CONV('A903',16,10), 'NETBSD', 1), |
---|
| 139 | (CONV('A904',16,10), 'NETBSD', 1), |
---|
| 140 | (CONV('A905',16,10), 'NETBSD', 1), |
---|
| 141 | (CONV('A906',16,10), 'NETBSD-RAID', 1), |
---|
| 142 | (CONV('AF02',16,10), 'HFS-RAID', 1), |
---|
| 143 | (CONV('FB00',16,10), 'VMFS', 1), |
---|
| 144 | (CONV('FB01',16,10), 'VMFS-RESERV', 1), |
---|
| 145 | (CONV('FB02',16,10), 'VMFS-KRN', 1) |
---|
| 146 | ON DUPLICATE KEY UPDATE |
---|
| 147 | codpar=VALUES(codpar), tipopar=VALUES(tipopar), clonable=VALUES(clonable); |
---|
[a616248] | 148 | INSERT INTO sistemasficheros (idsistemafichero, nemonico, descripcion) VALUES |
---|
| 149 | (19, 'LINUX-SWAP', 'LINUX-SWAP'), |
---|
| 150 | (20, 'F2FS', 'F2FS'), |
---|
| 151 | (21, 'NILFS2', 'NILFS2') |
---|
| 152 | ON DUPLICATE KEY UPDATE |
---|
| 153 | idsistemafichero=VALUES(idsistemafichero), nemonico=VALUES(nemonico), descripcion=VALUES(descripcion); |
---|
| 154 | |
---|
[6f62a1a] | 155 | |
---|
[8e0f770] | 156 | # Preparar generación de claves de acceso a la API REST para el usuario principal y a la del repositorio principal (tickets #708 y #743). |
---|
[077d8df1] | 157 | UPDATE usuarios |
---|
| 158 | SET apikey = 'APIKEY' |
---|
| 159 | WHERE idusuario = 1 AND apikey = ''; |
---|
[8e0f770] | 160 | UPDATE repositorios |
---|
| 161 | SET apikey = 'REPOKEY' |
---|
| 162 | WHERE idrepositorio = 1 AND apikey = ''; |
---|
[077d8df1] | 163 | |
---|
[6f62a1a] | 164 | # Nuevos componentes hardware (ticket #713) |
---|
| 165 | INSERT INTO tipohardwares (idtipohardware, descripcion, urlimg, nemonico) VALUES |
---|
| 166 | (17, 'Chasis del Sistema', '', 'cha'), |
---|
[212d995] | 167 | (18, 'Controladores de almacenamiento', '../images/iconos/almacenamiento.png', 'sto'), |
---|
| 168 | (19, 'Tipo de proceso de arranque', '../images/iconos/arranque.png', 'boo') |
---|
[6f62a1a] | 169 | ON DUPLICATE KEY UPDATE |
---|
| 170 | descripcion=VALUES(descripcion), urlimg=VALUES(urlimg), nemonico=VALUES(nemonico); |
---|
| 171 | |
---|
[7da6e599] | 172 | # Número de puestos del aula permite valores hasta 32768 (ticket #747) |
---|
| 173 | ALTER TABLE aulas |
---|
[d8b6c70] | 174 | MODIFY puestos smallint DEFAULT NULL; |
---|
[27e3d34] | 175 | |
---|
| 176 | # Nueva tabla para datos del proyecto Remote PC (ticket #708). |
---|
| 177 | CREATE TABLE IF NOT EXISTS remotepc ( |
---|
[d8b6c70] | 178 | id INT(11) NOT NULL, |
---|
| 179 | reserved DATETIME DEFAULT NULL, |
---|
| 180 | urllogin VARCHAR(100), |
---|
| 181 | urllogout VARCHAR(100), |
---|
| 182 | PRIMARY KEY (id) |
---|
| 183 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
---|
| 184 | ALTER TABLE remotepc |
---|
| 185 | MODIFY reserved DATETIME DEFAULT NULL; |
---|
[27e3d34] | 186 | |
---|
[e4fc3fd] | 187 | # Nuevo comando "Enviar mensaje" (ticket #779) |
---|
| 188 | INSERT INTO `comandos` (`idcomando`, `descripcion`, `pagina`, `gestor`, `funcion`, `urlimg`, |
---|
| 189 | `aplicambito`, `visuparametros`, `parametros`, `comentarios`, `activo`, `submenu`) VALUES |
---|
[d8b6c70] | 190 | (16, 'Enviar mensaje', '../comandos/EnviarMensaje.php', '../comandos/gestores/gestor_Comandos.php', 'EnviarMensaje', '', 31, '', '', '', 1, '' ); |
---|
[e4fc3fd] | 191 | INSERT INTO parametros (idparametro, nemonico, descripcion, nomidentificador, nomtabla, nomliteral, tipopa, visual) VALUES |
---|
[d8b6c70] | 192 | (39, 'tit', 'Título', '', '', '', 0, 1), |
---|
| 193 | (40, 'msj', 'Contenido', '', '', '', 0, 1); |
---|
[31ad046] | 194 | |
---|
| 195 | # Evitar error de MySQL con modo NO_ZERO_DATE (ticket #730). |
---|
| 196 | ALTER TABLE acciones |
---|
| 197 | MODIFY fechahorareg DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00', |
---|
| 198 | MODIFY fechahorafin DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00'; |
---|
| 199 | |
---|