From 1ffb74cc9f7f0935068a3446160b6d9593b9bf65 Mon Sep 17 00:00:00 2001 From: Eriksen Costa Paixão Date: Fri, 4 Sep 2009 07:29:00 +0000 Subject: [PATCH] by Eriksen: Corrigido problemas com a restauração de triggers e constraints das tabelas public.uf e public.municipio em decorrência da limpeza do banco de dados --- ieducar/misc/database/deltas/5_corrige_triggers_constrainst.sql | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/misc/database/ieducar.sql | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+), 0 deletions(-) create mode 100644 ieducar/misc/database/deltas/5_corrige_triggers_constrainst.sql diff --git a/ieducar/misc/database/deltas/5_corrige_triggers_constrainst.sql b/ieducar/misc/database/deltas/5_corrige_triggers_constrainst.sql new file mode 100644 index 0000000..118d761 --- /dev/null +++ b/ieducar/misc/database/deltas/5_corrige_triggers_constrainst.sql @@ -0,0 +1,76 @@ +-- // + +-- +-- Restaura triggers e constraints das tabelas public.municipio e public.uf +-- que foram totalmente desabilitadas pelos scripts de limpeza de banco de +-- dados. O schema de todos os comandos é o public. +-- +-- Nenhum efeito colateral foi relatado por conta dessas remoções. Este +-- delta visa apenas a reestabelecer a eventual consistência que estas +-- triggers e constraint dão. +-- +-- Para visualizar a diferença e ter um número que indique a quantidade +-- de triggers habilitadas, execute a seguinte query em uma base do +-- i-Educar 1.0.2 (rev. 57) e outra do primeiro beta do i-Educar 1.1.0 +-- (rev. 80). Substitua ? por 'municipio' e depois por 'uf'. +-- +-- Quantidades esperadas (1.0.2 e 1.1.0-beta1, respectivamente): +-- * uf: 16/12 +-- * municipio: 26/6 +-- +-- +-- (SELECT +-- count(pg_trigger.*) +-- FROM +-- pg_catalog.pg_class, pg_catalog.pg_trigger +-- WHERE +-- pg_class.relname = '?' +-- AND pg_class.oid = pg_trigger.tgrelid) +-- +-- +-- O script que não reestabeleceu as triggers e constraints foi o da +-- terceira versão (2_populate_basic_data.sql@6516), disponível no ticket #37: +-- {@link http://svn.softwarepublico.gov.br/trac/ieducar/ticket/37#change_1}. +-- +-- @author Eriksen Costa Paixão +-- @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL +-- @version $Id$ +-- + +CREATE TRIGGER trg_bef_municipio_historico + BEFORE UPDATE ON municipio + FOR EACH ROW + EXECUTE PROCEDURE historico.fcn_grava_historico_municipio(); + +CREATE TRIGGER trg_delete_municipio_historico + AFTER DELETE ON municipio + FOR EACH ROW + EXECUTE PROCEDURE historico.fcn_delete_grava_historico_municipio(); + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_logradouro_municipio FOREIGN KEY (idmun) REFERENCES municipio(idmun); + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_municipiopai FOREIGN KEY (idmun_pai) REFERENCES municipio(idmun); + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_sistema_idpes_cad FOREIGN KEY (idpes_cad) REFERENCES cadastro.pessoa(idpes) ON DELETE SET NULL; + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_sistema_idpes_rev FOREIGN KEY (idpes_rev) REFERENCES cadastro.pessoa(idpes) ON DELETE SET NULL; + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_sistema_idsis_cad FOREIGN KEY (idsis_cad) REFERENCES acesso.sistema(idsis) ON DELETE SET NULL; + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_sistema_idsis_rev FOREIGN KEY (idsis_rev) REFERENCES acesso.sistema(idsis) ON DELETE SET NULL; + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_uf FOREIGN KEY (sigla_uf) REFERENCES uf(sigla_uf); + +ALTER TABLE ONLY uf + ADD CONSTRAINT fk_uf_pais FOREIGN KEY (idpais) REFERENCES pais(idpais); + +-- //@UNDO + +-- // diff --git a/ieducar/misc/database/ieducar.sql b/ieducar/misc/database/ieducar.sql index bde0e97..1de0ee3 100644 --- a/ieducar/misc/database/ieducar.sql +++ b/ieducar/misc/database/ieducar.sql @@ -19158,6 +19158,7 @@ INSERT INTO changelog VALUES (2, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '2_popula INSERT INTO changelog VALUES (1, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '1_cria_schema_inicial.sql'); INSERT INTO changelog VALUES (3, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '3_corrige_sequences.sql'); INSERT INTO changelog VALUES (4, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '4_permissoes_usuario_tipo_biblioteca.sql'); +INSERT INTO changelog VALUES (5, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '5_corrige_triggers_constrainst.sql'); -- @@ -30055,6 +30056,16 @@ CREATE TRIGGER trg_bef_logradouro_historico -- +-- Name: trg_bef_municipio_historico; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER trg_bef_municipio_historico + BEFORE UPDATE ON municipio + FOR EACH ROW + EXECUTE PROCEDURE historico.fcn_grava_historico_municipio(); + + +-- -- Name: trg_delete_bairro_historico; Type: TRIGGER; Schema: public; Owner: - -- @@ -30074,6 +30085,16 @@ CREATE TRIGGER trg_delete_logradouro_historico EXECUTE PROCEDURE historico.fcn_delete_grava_historico_logradouro(); +-- +-- Name: trg_delete_municipio_historico; Type: TRIGGER; Schema: public; Owner: - +-- + +CREATE TRIGGER trg_delete_municipio_historico + AFTER DELETE ON municipio + FOR EACH ROW + EXECUTE PROCEDURE historico.fcn_delete_grava_historico_municipio(); + + SET search_path = urbano, pg_catalog; -- @@ -35539,6 +35560,14 @@ ALTER TABLE ONLY logradouro_fonetico -- +-- Name: fk_logradouro_municipio; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_logradouro_municipio FOREIGN KEY (idmun) REFERENCES municipio(idmun); + + +-- -- Name: fk_logradouro_sistema_idpes_cad; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -35579,6 +35608,54 @@ ALTER TABLE ONLY logradouro -- +-- Name: fk_municipio_municipiopai; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_municipiopai FOREIGN KEY (idmun_pai) REFERENCES municipio(idmun); + + +-- +-- Name: fk_municipio_sistema_idpes_cad; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_sistema_idpes_cad FOREIGN KEY (idpes_cad) REFERENCES cadastro.pessoa(idpes) ON DELETE SET NULL; + + +-- +-- Name: fk_municipio_sistema_idpes_rev; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_sistema_idpes_rev FOREIGN KEY (idpes_rev) REFERENCES cadastro.pessoa(idpes) ON DELETE SET NULL; + + +-- +-- Name: fk_municipio_sistema_idsis_cad; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_sistema_idsis_cad FOREIGN KEY (idsis_cad) REFERENCES acesso.sistema(idsis) ON DELETE SET NULL; + + +-- +-- Name: fk_municipio_sistema_idsis_rev; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_sistema_idsis_rev FOREIGN KEY (idsis_rev) REFERENCES acesso.sistema(idsis) ON DELETE SET NULL; + + +-- +-- Name: fk_municipio_uf; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY municipio + ADD CONSTRAINT fk_municipio_uf FOREIGN KEY (sigla_uf) REFERENCES uf(sigla_uf); + + +-- -- Name: fk_setor_idsetredir; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -35595,6 +35672,14 @@ ALTER TABLE ONLY setor -- +-- Name: fk_uf_pais; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY uf + ADD CONSTRAINT fk_uf_pais FOREIGN KEY (idpais) REFERENCES pais(idpais); + + +-- -- Name: fk_vila_municipio; Type: FK CONSTRAINT; Schema: public; Owner: - -- -- libgit2 0.21.2