You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
7.1 KiB
172 lines
7.1 KiB
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
-- Script de conversion de version 3.21.0 a 3.22.0 |
|
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
BEGIN WORK; |
|
|
|
-- Versión de la base |
|
INSERT INTO app_versiones_base(version_base, fecha_actualizacion, observaciones) |
|
VALUES ('3.22.0', CURRENT_TIMESTAMP, 'Versión 3.22.0 de la base de Preinscripción'); |
|
|
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
-- Scripts de versiones de 3er digito de 3.21 |
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
-- 3.21.1 |
|
DO $BODY$ |
|
BEGIN |
|
|
|
ALTER TABLE sga_preinscripcion |
|
DROP CONSTRAINT ck_sga_preinscripcion_aud_lenguaje_labial |
|
, ADD CONSTRAINT ck_sga_preinscripcion_aud_lenguaje_labial CHECK (aud_lenguaje_labial IN ('S', 'N')); |
|
|
|
END $BODY$; |
|
-- 3.21.2 |
|
|
|
-- 3.21.3 |
|
DO $BODY$ |
|
DECLARE cant INTEGER; |
|
BEGIN |
|
|
|
SELECT COUNT(*) INTO cant |
|
FROM pg_tables |
|
JOIN pg_namespace ON pg_namespace.nspname = pg_tables.schemaname |
|
JOIN pg_class ON (pg_class.relname = pg_tables.tablename AND pg_class.relnamespace = pg_namespace.oid) |
|
JOIN pg_attribute as a0 ON a0.attrelid = pg_class.oid |
|
WHERE pg_tables.schemaname = trim(current_schema()) |
|
AND pg_tables.tablename = 'sga_preinscripcion' |
|
AND a0.attname = 'duplicada' |
|
AND a0.attnum > 0; |
|
|
|
IF cant = 0 THEN |
|
ALTER TABLE sga_preinscripcion ADD COLUMN duplicada Char(1) NOT NULL DEFAULT 'N'; |
|
|
|
|
|
-- Datos de configuracion |
|
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('duplicada','duplicada'); |
|
|
|
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','duplicada',1,0,1); |
|
|
|
END IF; |
|
END $BODY$; |
|
-- ++++++++++++++++++ Fin Agrego campos de pregunta_secreta +++++++++++++++++++ |
|
|
|
-- +++++++++++++++ Agrego campos de pregunta_secreta ++++++++++++++++++++++++++++++ |
|
DO $BODY$ |
|
DECLARE cant INTEGER; |
|
BEGIN |
|
|
|
SELECT COUNT(*) INTO cant |
|
FROM pg_tables |
|
JOIN pg_namespace ON pg_namespace.nspname = pg_tables.schemaname |
|
JOIN pg_class ON (pg_class.relname = pg_tables.tablename AND pg_class.relnamespace = pg_namespace.oid) |
|
JOIN pg_attribute as a0 ON a0.attrelid = pg_class.oid |
|
WHERE pg_tables.schemaname = trim(current_schema()) |
|
AND pg_tables.tablename = 'sga_preinscripcion' |
|
AND a0.attname = 'pregunta_secreta' |
|
AND a0.attnum > 0; |
|
|
|
IF cant = 0 THEN |
|
ALTER TABLE sga_preinscripcion ADD COLUMN pregunta_secreta Char(255) NOT NULL DEFAULT ''; |
|
|
|
|
|
-- Datos de configuracion |
|
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('pregunta_secreta','pregunta secreta'); |
|
|
|
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','pregunta_secreta',1,0,1); |
|
|
|
END IF; |
|
END $BODY$; |
|
-- ++++++++++++++++++ Fin Agrego campos de pregunta_secreta +++++++++++++++++++ |
|
|
|
-- +++++++++++++++ Agrego campos de respuesta secreta ++++++++++++++++++++++++++++++ |
|
DO $BODY$ |
|
DECLARE cant INTEGER; |
|
BEGIN |
|
|
|
SELECT COUNT(*) INTO cant |
|
FROM pg_tables |
|
JOIN pg_namespace ON pg_namespace.nspname = pg_tables.schemaname |
|
JOIN pg_class ON (pg_class.relname = pg_tables.tablename AND pg_class.relnamespace = pg_namespace.oid) |
|
JOIN pg_attribute as a0 ON a0.attrelid = pg_class.oid |
|
WHERE pg_tables.schemaname = trim(current_schema()) |
|
AND pg_tables.tablename = 'sga_preinscripcion' |
|
AND a0.attname = 'respuesta_secreta' |
|
AND a0.attnum > 0; |
|
|
|
IF cant = 0 THEN |
|
ALTER TABLE sga_preinscripcion ADD COLUMN respuesta_secreta Char(255) NOT NULL DEFAULT ''; |
|
|
|
|
|
-- Datos de configuracion |
|
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('respuesta_secreta','respuesta secreta'); |
|
|
|
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','respuesta_secreta',1,0,1); |
|
|
|
END IF; |
|
END $BODY$; |
|
|
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
-- Scripts de la version 3.22.0 |
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
-- Se elimina campo "Empresa" dentro de "Situación laboral" |
|
DELETE FROM sga_campos_conf WHERE columna = 'empresa'; |
|
DELETE FROM sga_campos_form WHERE columna = 'empresa'; |
|
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS empresa; |
|
|
|
-- Se elimina campo "Otra empresa" dentro de "Situación laboral" |
|
DELETE FROM sga_campos_conf WHERE columna = 'empresa_otra'; |
|
DELETE FROM sga_campos_form WHERE columna = 'empresa_otra'; |
|
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS empresa_otra; |
|
|
|
-- Se elimina campo "Facilidad de estudio en la empresa" dentro de "Situación laboral" |
|
DELETE FROM sga_campos_conf WHERE columna = 'facilidad_est_emp'; |
|
DELETE FROM sga_campos_form WHERE columna = 'facilidad_est_emp'; |
|
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS facilidad_est_emp; |
|
|
|
-- Se elimina campo "Facilidad de estudio en la institución" dentro de "Situación laboral" |
|
DELETE FROM sga_campos_conf WHERE columna = 'facilidad_est_inst'; |
|
DELETE FROM sga_campos_form WHERE columna = 'facilidad_est_inst'; |
|
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS facilidad_est_inst; |
|
|
|
-- Creo la extensión unaccent |
|
CREATE EXTENSION IF NOT EXISTS unaccent; |
|
|
|
-- Modifico la función f_limpiar_acentos |
|
CREATE OR REPLACE FUNCTION f_limpiar_acentos(text) |
|
RETURNS text |
|
IMMUTABLE |
|
STRICT |
|
LANGUAGE SQL |
|
AS $$ |
|
SELECT REPLACE(REPLACE(unaccent(REPLACE(REPLACE($1, 'Ñ', '%enie_may%'), 'ñ', '%enie_min%')), '%enie_may%', 'Ñ'), '%enie_min%', 'ñ'); |
|
$$; |
|
|
|
GRANT EXECUTE ON FUNCTION f_limpiar_acentos(text) to public; |
|
|
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
-- Ticket 44988 |
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
alter table sga_preinscripcion alter column usuario type varchar(100); |
|
alter table sga_preinscripcion alter column e_mail type varchar(100); |
|
alter table sga_preinscripcion alter column apellido_padre type varchar(60); |
|
alter table sga_preinscripcion alter column apellido_madre type varchar(60); |
|
alter table sga_preinscripcion alter column nombres_padre type varchar(60); |
|
alter table sga_preinscripcion alter column nombres_madre type varchar(60); |
|
|
|
CREATE INDEX IF NOT EXISTS id__sga_preinscripcion__codigo_validacion ON sga_preinscripcion (codigo_validacion); |
|
|
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
-- Ticket 25423 |
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
alter table sga_preinscripcion alter column pregunta_secreta type VARCHAR(255); |
|
alter table sga_preinscripcion alter column respuesta_secreta type VARCHAR(255); |
|
|
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
-- Ticket 47688 |
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
CREATE INDEX IF NOT EXISTS id__sga_preinscripcion__apellido_nombres_fecha_nac ON sga_preinscripcion (apellido, nombres, fecha_nacimiento); |
|
|
|
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
-- Ticket 46901 se reemplaza usuario por email |
|
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS usuario;-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
|
|
COMMIT WORK;
|
|
|