source: admin/Database/ogAdmBD-1.1.0pre.sql @ a38cb26

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since a38cb26 was 3be7389, checked in by ramon <ramongomez@…>, 8 years ago

#730: Eliminar de la BD campos sin uso en tabla aulas y actualizar lista de tickets cerrados.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5428 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 10.7 KB
Line 
1### Fichero de actualización de la base de datos.
2# OpenGnsys 1.1.0
3#use ogAdmBD
4
5### NOTA: la configuración de MySQL solo puede modificarla el usuario "root".
6# Soportar cláusuloas GROUP BY especiales para configuración de equipos.
7#SET GLOBAL sql_mode = TRIM(BOTH ',' FROM REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));
8# Activar calendario de eventos de MySQL.
9#SET GLOBAL event_scheduler = ON;
10
11# Eliminar procedimiento y disparador para evitar errores de ejecución.
12DROP PROCEDURE IF EXISTS addcols;
13DROP TRIGGER IF EXISTS registrar_acciones;
14# Procedimiento para actualización condicional de tablas.
15DELIMITER '//'
16CREATE PROCEDURE addcols() BEGIN
17        # Añadir campo para incluir aulas en proyecto Remote PC (ticket #708).
18        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
19                        WHERE COLUMN_NAME='inremotepc' AND TABLE_NAME='aulas' AND TABLE_SCHEMA=DATABASE())
20        THEN
21                ALTER TABLE aulas
22                        ADD inremotepc TINYINT DEFAULT 0;
23        END IF;
24        # Añadir campo para incluir imágenes en proyecto Remote PC (ticket #708).
25        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
26                        WHERE COLUMN_NAME='inremotepc' AND TABLE_NAME='imagenes' AND TABLE_SCHEMA=DATABASE())
27        THEN
28                ALTER TABLE imagenes
29                        ADD inremotepc TINYINT DEFAULT 0;
30        END IF;
31        # Añadir campo para clave de acceso a la API REST (ticket #708).
32        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
33                        WHERE COLUMN_NAME='apikey' AND TABLE_NAME='usuarios' AND TABLE_SCHEMA=DATABASE())
34        THEN
35                ALTER TABLE usuarios
36                        ADD apikey VARCHAR(32) NOT NULL DEFAULT '';
37        END IF;
38        # Añadir porcentaje de uso de sistema de ficheros (ticket #711)
39        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
40                        WHERE COLUMN_NAME='uso' AND TABLE_NAME='ordenadores_particiones' AND TABLE_SCHEMA=DATABASE())
41        THEN
42                ALTER TABLE ordenadores_particiones
43                        ADD uso TINYINT NOT NULL DEFAULT 0;
44        END IF;
45        # Añadir nº de serie (ticket #713)
46        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
47                        WHERE COLUMN_NAME='numserie' AND TABLE_NAME='ordenadores' AND TABLE_SCHEMA=DATABASE())
48        THEN
49                ALTER TABLE ordenadores
50                        ADD numserie varchar(25) DEFAULT NULL AFTER nombreordenador;
51        END IF;
52        # Añadir campo para clave de acceso a la API REST de OGAgent (ticket #718).
53        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
54                        WHERE COLUMN_NAME='agentkey' AND TABLE_NAME='ordenadores' AND TABLE_SCHEMA=DATABASE())
55        THEN
56                ALTER TABLE ordenadores
57                        ADD agentkey VARCHAR(32) DEFAULT NULL;
58        END IF;
59        # Añadir índice para mostrar correctamente el formulario de estado.
60        IF NOT EXISTS (SELECT * FROM information_schema.STATISTICS
61                        WHERE INDEX_NAME='idaulaip' AND TABLE_NAME='ordenadores' AND TABLE_SCHEMA=DATABASE())
62        THEN
63                ALTER TABLE ordenadores
64                        ADD KEY idaulaip (idaula ASC, ip ASC);
65        END IF;
66        # Añadir campo para directorio de ogLive asociado al cliente (ticket #768).
67        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
68                        WHERE COLUMN_NAME='oglivedir' AND TABLE_NAME='ordenadores' AND TABLE_SCHEMA=DATABASE())
69        THEN
70                ALTER TABLE ordenadores
71                        ADD oglivedir VARCHAR(50) NOT NULL DEFAULT 'ogLive';
72        END IF;
73        # Añadir campo para directorio de ogLive asociado al cliente (ticket #768).
74        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
75                        WHERE COLUMN_NAME='oglivedir' AND TABLE_NAME='aulas' AND TABLE_SCHEMA=DATABASE())
76        THEN
77                ALTER TABLE aulas
78                        ADD oglivedir VARCHAR(50) NOT NULL DEFAULT 'ogLive';
79        END IF;
80        # Eliminar campos sin uso en aulas (ticket #730).
81        IF EXISTS (SELECT * FROM information_schema.COLUMNS
82                        WHERE COLUMN_NAME='cuadro_x' AND TABLE_NAME='aulas' AND TABLE_SCHEMA=DATABASE())
83        THEN
84                ALTER TABLE aulas
85                        DROP cuadro_x,
86                        DROP cuadro_y;
87        END IF;
88        # Eliminar campos no usado en inventario de hardware (ticket #713).
89        IF EXISTS (SELECT * FROM information_schema.COLUMNS
90                        WHERE COLUMN_NAME='pci' AND TABLE_NAME='tipohardwares' AND TABLE_SCHEMA=DATABASE())
91        THEN
92                ALTER TABLE tipohardwares
93                        DROP pci;
94        END IF;
95        # Añadir servidor de sincronización horaria NTP (ticket #725).
96        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
97                        WHERE COLUMN_NAME='ntp' AND TABLE_NAME='aulas' AND TABLE_SCHEMA=DATABASE())
98        THEN
99                ALTER TABLE aulas
100                        ADD ntp VARCHAR(30) AFTER proxy;
101        END IF;
102        # Directorios en repo para distintas UO (ticket #678).
103        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
104                        WHERE COLUMN_NAME='ogunit' AND TABLE_NAME='entidades' AND TABLE_SCHEMA=DATABASE())
105        THEN
106                ALTER TABLE entidades
107                        ADD ogunit TINYINT(1) NOT NULL DEFAULT 0;
108        END IF;
109        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
110                        WHERE COLUMN_NAME='directorio' AND TABLE_NAME='centros' AND TABLE_SCHEMA=DATABASE())
111        THEN
112                ALTER TABLE centros
113                        ADD directorio VARCHAR(50) DEFAULT '';
114        END IF;
115        # Nº de revisión de imagen (ticket #737).
116        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
117                        WHERE COLUMN_NAME='revision' AND TABLE_NAME='imagenes' AND TABLE_SCHEMA=DATABASE())
118        THEN
119                ALTER TABLE imagenes
120                        ADD revision SMALLINT UNSIGNED NOT NULL DEFAULT 0 AFTER nombreca;
121        END IF;
122        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
123                        WHERE COLUMN_NAME='revision' AND TABLE_NAME='ordenadores_particiones' AND TABLE_SCHEMA=DATABASE())
124        THEN
125                ALTER TABLE ordenadores_particiones
126                        ADD revision SMALLINT UNSIGNED NOT NULL DEFAULT 0 AFTER idimagen;
127        END IF;
128        # Incluir campo sistema operativo en el perfil de software (tickets #738 #713)
129        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
130                        WHERE COLUMN_NAME='idnombreso' AND TABLE_NAME='perfilessoft'  AND TABLE_SCHEMA=DATABASE())
131        THEN
132                ALTER TABLE perfilessoft
133                        ADD idnombreso SMALLINT UNSIGNED AFTER idperfilsoft;
134        END IF;
135        # Añadir campo para clave de acceso a la API REST del repositorio (ticket #743).
136        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
137                        WHERE COLUMN_NAME='apikey' AND TABLE_NAME='repositorios' AND TABLE_SCHEMA=DATABASE())
138        THEN
139                ALTER TABLE repositorios
140                        ADD apikey VARCHAR(32) NOT NULL DEFAULT '';
141        END IF;
142        # Codificar claves de los usuarios, si fuese necesario (ticket #778)
143        IF ((SELECT CHARACTER_MAXIMUM_LENGTH FROM information_schema.COLUMNS
144              WHERE COLUMN_NAME='pasguor' AND TABLE_NAME='usuarios' AND TABLE_SCHEMA=DATABASE()) != 56)
145        THEN
146                ALTER TABLE usuarios
147                        MODIFY pasguor VARCHAR(56) NOT NULL DEFAULT '';
148                INSERT INTO usuarios (idusuario, pasguor)
149                        SELECT idusuario, pasguor FROM usuarios
150                        ON DUPLICATE KEY UPDATE
151                                pasguor=SHA2(VALUES(pasguor),224);
152        END IF;
153        # Crear tabla de log para la cola de acciones (ticket #782)
154        IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS
155                        WHERE TABLE_NAME='acciones_log' AND TABLE_SCHEMA=DATABASE())
156        THEN
157                CREATE TABLE acciones_log LIKE acciones;
158                ALTER TABLE acciones_log ADD fecha_borrado DATETIME;
159        END IF;
160END//
161# Disparador para mover acciones borradas a la tabla de registro de acciones.
162CREATE TRIGGER registrar_acciones BEFORE DELETE ON acciones FOR EACH ROW
163BEGIN
164        INSERT INTO acciones_log VALUES
165                (OLD.idaccion, OLD.tipoaccion, OLD.idtipoaccion, OLD.descriaccion,
166                OLD.idordenador, OLD.ip, OLD.sesion, OLD.idcomando, OLD.parametros,
167                OLD.fechahorareg, OLD.fechahorafin, OLD.estado, OLD.resultado,
168                OLD.descrinotificacion, OLD.ambito, OLD.idambito, OLD.restrambito,
169                OLD.idprocedimiento, OLD.idtarea, OLD.idcentro, OLD.idprogramacion,
170                NOW());
171END//
172# Ejecutar actualización condicional.
173DELIMITER ';'
174CALL addcols();
175DROP PROCEDURE addcols;
176
177# Nuevos tipos de particiones y de sistemas de ficheros.
178INSERT INTO tipospar (codpar, tipopar, clonable) VALUES
179        (CONV('A9',16,10), 'NETBSD', 1),
180        (CONV('2700',16,10), 'WIN-RECOV', 1),
181        (CONV('8302',16,10), 'LINUX', 1),
182        (CONV('A504',16,10), 'FREEBSD', 1),
183        (CONV('A901',16,10), 'NETBSD-SWAP', 0),
184        (CONV('A902',16,10), 'NETBSD', 1),
185        (CONV('A903',16,10), 'NETBSD', 1),
186        (CONV('A904',16,10), 'NETBSD', 1),
187        (CONV('A905',16,10), 'NETBSD', 1),
188        (CONV('A906',16,10), 'NETBSD-RAID', 1),
189        (CONV('AF02',16,10), 'HFS-RAID', 1),
190        (CONV('FB00',16,10), 'VMFS', 1),
191        (CONV('FB01',16,10), 'VMFS-RESERV', 1),
192        (CONV('FB02',16,10), 'VMFS-KRN', 1),
193        (CONV('10000',16,10), 'LVM-LV', 1),
194        (CONV('10010',16,10), 'ZFS-VOL', 1)
195        ON DUPLICATE KEY UPDATE
196                codpar=VALUES(codpar), tipopar=VALUES(tipopar), clonable=VALUES(clonable);
197INSERT INTO sistemasficheros (idsistemafichero, nemonico, descripcion) VALUES
198        (19, 'LINUX-SWAP', 'LINUX-SWAP'),
199        (20, 'F2FS', 'F2FS'),
200        (21, 'NILFS2', 'NILFS2')
201                ON DUPLICATE KEY UPDATE
202                idsistemafichero=VALUES(idsistemafichero), nemonico=VALUES(nemonico), descripcion=VALUES(descripcion);
203
204
205# 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).
206UPDATE usuarios
207        SET apikey = 'APIKEY'
208        WHERE idusuario = 1 AND apikey = '';
209UPDATE repositorios
210        SET apikey = 'REPOKEY'
211        WHERE idrepositorio = 1 AND apikey = '';
212
213# Nuevos componentes hardware (ticket #713)
214INSERT INTO tipohardwares (idtipohardware, descripcion, urlimg, nemonico) VALUES
215        (17, 'Chasis del Sistema', '', 'cha'),
216        (18, 'Controladores de almacenamiento', '../images/iconos/almacenamiento.png', 'sto'),
217        (19, 'Tipo de proceso de arranque', '../images/iconos/arranque.png', 'boo')
218        ON DUPLICATE KEY UPDATE
219                descripcion=VALUES(descripcion), urlimg=VALUES(urlimg), nemonico=VALUES(nemonico);
220
221# Número de puestos del aula permite valores hasta 32768 (ticket #747)
222ALTER TABLE aulas
223        MODIFY puestos SMALLINT DEFAULT NULL;
224
225# Nueva tabla para datos del proyecto Remote PC (ticket #708).
226CREATE TABLE IF NOT EXISTS remotepc (
227        id INT(11) NOT NULL,
228        reserved DATETIME DEFAULT NULL,
229        urllogin VARCHAR(100),
230        urllogout VARCHAR(100),
231        PRIMARY KEY (id)
232        ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
233ALTER TABLE remotepc
234       MODIFY reserved DATETIME DEFAULT NULL;
235
236# Nuevo comando "Enviar mensaje" (ticket #779)
237INSERT INTO comandos (idcomando, descripcion, pagina, gestor, funcion, urlimg,
238        aplicambito, visuparametros, parametros, comentarios, activo, submenu) VALUES
239        (16, 'Enviar mensaje', '../comandos/EnviarMensaje.php', '../comandos/gestores/gestor_Comandos.php', 'EnviarMensaje', '', 31, '', '', '', 1, '' )
240        ON DUPLICATE KEY UPDATE
241                descripcion=VALUES(descripcion), pagina=VALUES(pagina),
242                gestor=VALUES(gestor), funcion=VALUES(funcion),
243                aplicambito=VALUES(aplicambito), activo=VALUES(activo);
244INSERT INTO parametros (idparametro, nemonico, descripcion, nomidentificador, nomtabla, nomliteral, tipopa, visual) VALUES
245        (39, 'tit', 'Título', '', '', '', 0, 1),
246        (40, 'msj', 'Contenido', '', '', '', 0, 1)
247        ON DUPLICATE KEY UPDATE
248                nemonico=VALUES(nemonico), descripcion=VALUES(descripcion),
249                tipopa=VALUES(tipopa), visual=VALUES(visual);
250
251# Evitar error de MySQL con modo NO_ZERO_DATE (ticket #730).
252ALTER TABLE acciones
253        MODIFY fechahorareg DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00',
254        MODIFY fechahorafin DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00';
255
256# Ampliar programación de tareas hasta 2025 (ticket #732).
257ALTER TABLE programaciones
258        MODIFY annos SMALLINT DEFAULT NULL;
259
260# Eliminar tabla sin uso (ticket #730).
261DROP TABLE IF EXISTS campus;
262
Note: See TracBrowser for help on using the repository browser.