-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- 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;