1 | ### Fichero de actualización de la base de datos. |
---|
2 | # OpenGnSys 1.0.6 |
---|
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; |
---|
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; |
---|
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; |
---|
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; |
---|
52 | # Añadir índice para mostrar correctamente el formulario de estado. |
---|
53 | IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS |
---|
54 | WHERE COLUMN_NAME='idaulaip' AND TABLE_NAME='ordenadores' AND TABLE_SCHEMA=DATABASE()) |
---|
55 | THEN |
---|
56 | ALTER TABLE ordenadores |
---|
57 | ADD KEY idaulaip (idaula ASC, ip ASC); |
---|
58 | END IF; |
---|
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; |
---|
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; |
---|
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()) |
---|
76 | THEN |
---|
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()) |
---|
82 | THEN |
---|
83 | ALTER TABLE centros |
---|
84 | ADD directorio VARCHAR(50) DEFAULT ''; |
---|
85 | END IF; |
---|
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; |
---|
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; |
---|
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; |
---|
113 | END// |
---|
114 | # Ejecutar actualización condicional. |
---|
115 | delimiter ';' |
---|
116 | CALL addcols(); |
---|
117 | DROP PROCEDURE addcols; |
---|
118 | |
---|
119 | # Nuevos tipos de particiones. |
---|
120 | INSERT INTO tipospar (codpar, tipopar, clonable) VALUES |
---|
121 | (CONV('A9',16,10), 'NETBSD', 1), |
---|
122 | (CONV('2700',16,10), 'WIN-RECOV', 1), |
---|
123 | (CONV('8302',16,10), 'LINUX', 1), |
---|
124 | (CONV('A504',16,10), 'FREEBSD', 1), |
---|
125 | (CONV('A901',16,10), 'NETBSD-SWAP', 0), |
---|
126 | (CONV('A902',16,10), 'NETBSD', 1), |
---|
127 | (CONV('A903',16,10), 'NETBSD', 1), |
---|
128 | (CONV('A904',16,10), 'NETBSD', 1), |
---|
129 | (CONV('A905',16,10), 'NETBSD', 1), |
---|
130 | (CONV('A906',16,10), 'NETBSD-RAID', 1), |
---|
131 | (CONV('AF02',16,10), 'HFS-RAID', 1), |
---|
132 | (CONV('FB00',16,10), 'VMFS', 1), |
---|
133 | (CONV('FB01',16,10), 'VMFS-RESERV', 1), |
---|
134 | (CONV('FB02',16,10), 'VMFS-KRN', 1) |
---|
135 | ON DUPLICATE KEY UPDATE |
---|
136 | codpar=VALUES(codpar), tipopar=VALUES(tipopar), clonable=VALUES(clonable); |
---|
137 | |
---|
138 | # 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). |
---|
139 | UPDATE usuarios |
---|
140 | SET apikey = 'APIKEY' |
---|
141 | WHERE idusuario = 1 AND apikey = ''; |
---|
142 | UPDATE repositorios |
---|
143 | SET apikey = 'REPOKEY' |
---|
144 | WHERE idrepositorio = 1 AND apikey = ''; |
---|
145 | |
---|
146 | # Nuevos componentes hardware (ticket #713) |
---|
147 | INSERT INTO tipohardwares (idtipohardware, descripcion, urlimg, nemonico) VALUES |
---|
148 | (17, 'Chasis del Sistema', '', 'cha'), |
---|
149 | (18, 'Controladores de almacenamiento', '../images/iconos/almacenamiento.png', 'sto'), |
---|
150 | (19, 'Tipo de proceso de arranque', '../images/iconos/arranque.png', 'boo') |
---|
151 | ON DUPLICATE KEY UPDATE |
---|
152 | descripcion=VALUES(descripcion), urlimg=VALUES(urlimg), nemonico=VALUES(nemonico); |
---|
153 | |
---|
154 | # Número de puestos del aula permite valores hasta 32768 (ticket #747) |
---|
155 | ALTER TABLE aulas |
---|
156 | MODIFY puestos smallint DEFAULT NULL; |
---|