Commit 2af4bd94a2e426123c99cb027bb99d2c482dc50a

Authored by Eriksen Costa Paixão
1 parent 30fc70a3
Exists in master

#46 by Eriksen: Corrigido problemas nas sequences com arquivo delta e atualizaçã…

…o do dump do banco de dados


ieducar/misc/database/deltas/3_corrige_sequences.sql 0 → 100644
... ... @@ -0,0 +1,38 @@
  1 +-- //
  2 +
  3 +--
  4 +-- Corrige sequences que apresentaram valores incorretos devido a limpeza do
  5 +-- banco de dados. Isso ocorre quando uma instrução SQL INSERT informa o valor
  6 +-- da chave primária. O PostgreSQL não executa a chamada a nextval() dos campos
  7 +-- de tipo serial e nem atualiza a sequence com setval(), apesar de esse
  8 +-- comportamento estar presente nos tipos autoincrement do MySQL.
  9 +--
  10 +-- O problema que ocorre é a execução de um SQL INSERT sem passar um valor para
  11 +-- a chave primária (sequence). Se o próximo valor da sequence já estiver sendo
  12 +-- utilizado, um erro de integridade da chave é lançada.
  13 +--
  14 +-- Exemplo de SQL que resultaria em erro (observe o valor 1):
  15 +-- <code>
  16 +-- INSERT INTO acesso.sistema(
  17 +-- idsis, nome, descricao, contexto, situacao)
  18 +-- VALUES (1, ?, ?, ?, ?);
  19 +-- <code>
  20 +--
  21 +-- @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  22 +-- @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
  23 +-- @version $Id$
  24 +--
  25 +
  26 +SELECT setval('acesso.sistema_idsis_seq', MAX(idsis)) FROM acesso.sistema WHERE TRUE;
  27 +SELECT setval('pmicontrolesis.menu_cod_menu_seq', MAX(cod_menu)) FROM pmicontrolesis.menu WHERE TRUE;
  28 +SELECT setval('pmicontrolesis.tutormenu_cod_tutormenu_seq', MAX(cod_tutormenu)) FROM pmicontrolesis.tutormenu WHERE TRUE;
  29 +SELECT setval('pmieducar.instituicao_cod_instituicao_seq', MAX(cod_instituicao)) FROM pmieducar.instituicao WHERE TRUE;
  30 +SELECT setval('pmieducar.tipo_usuario_cod_tipo_usuario_seq', MAX(cod_tipo_usuario)) FROM pmieducar.tipo_usuario WHERE TRUE;
  31 +SELECT setval('portal.imagem_cod_imagem_seq', MAX(cod_imagem)) FROM portal.imagem WHERE TRUE;
  32 +SELECT setval('portal.imagem_tipo_cod_imagem_tipo_seq', MAX(cod_imagem_tipo)) FROM portal.imagem_tipo WHERE TRUE;
  33 +SELECT setval('portal.menu_menu_cod_menu_menu_seq', MAX(cod_menu_menu)) FROM portal.menu_menu WHERE TRUE;
  34 +SELECT setval('portal.menu_submenu_cod_menu_submenu_seq', MAX(cod_menu_submenu)) FROM portal.menu_submenu WHERE TRUE;
  35 +
  36 +-- //@UNDO
  37 +
  38 +-- //
... ...
ieducar/misc/database/ieducar.sql
... ... @@ -86,13 +86,6 @@ CREATE SCHEMA portal;
86 86  
87 87  
88 88 --
89   --- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: -
90   ---
91   -
92   -COMMENT ON SCHEMA public IS 'Standard public schema';
93   -
94   -
95   ---
96 89 -- Name: urbano; Type: SCHEMA; Schema: -; Owner: -
97 90 --
98 91  
... ... @@ -7343,7 +7336,7 @@ CREATE TABLE grupo_sistema (
7343 7336 --
7344 7337  
7345 7338 CREATE TABLE historico_senha (
7346   - "login" character varying(16) NOT NULL,
  7339 + login character varying(16) NOT NULL,
7347 7340 senha character varying(60) NOT NULL,
7348 7341 data_cad timestamp without time zone NOT NULL
7349 7342 );
... ... @@ -7506,7 +7499,6 @@ CREATE TABLE pessoa_instituicao (
7506 7499 --
7507 7500  
7508 7501 CREATE SEQUENCE sistema_idsis_seq
7509   - START WITH 1
7510 7502 INCREMENT BY 1
7511 7503 NO MAXVALUE
7512 7504 MINVALUE 0
... ... @@ -7517,7 +7509,7 @@ CREATE SEQUENCE sistema_idsis_seq
7517 7509 -- Name: sistema_idsis_seq; Type: SEQUENCE SET; Schema: acesso; Owner: -
7518 7510 --
7519 7511  
7520   -SELECT pg_catalog.setval('sistema_idsis_seq', 1, false);
  7512 +SELECT pg_catalog.setval('sistema_idsis_seq', 17, true);
7521 7513  
7522 7514  
7523 7515 --
... ... @@ -7539,7 +7531,7 @@ CREATE TABLE sistema (
7539 7531 --
7540 7532  
7541 7533 CREATE TABLE usuario (
7542   - "login" character varying(16) NOT NULL,
  7534 + login character varying(16) NOT NULL,
7543 7535 idpes numeric(8,0) NOT NULL,
7544 7536 idpes_sga numeric(8,0),
7545 7537 senha character varying(60) NOT NULL,
... ... @@ -7566,7 +7558,7 @@ CREATE TABLE usuario (
7566 7558  
7567 7559 CREATE TABLE usuario_grupo (
7568 7560 idgrp integer NOT NULL,
7569   - "login" character varying(16) NOT NULL
  7561 + login character varying(16) NOT NULL
7570 7562 );
7571 7563  
7572 7564  
... ... @@ -7848,7 +7840,7 @@ CREATE TABLE contrato (
7848 7840 idcon integer DEFAULT nextval('contrato_idcon_seq'::regclass) NOT NULL,
7849 7841 codigo character varying(20) NOT NULL,
7850 7842 idcli character varying(10) NOT NULL,
7851   - "login" character varying(80) NOT NULL,
  7843 + login character varying(80) NOT NULL,
7852 7844 num_aditivo integer NOT NULL,
7853 7845 idfor integer NOT NULL,
7854 7846 dt_vigencia date NOT NULL,
... ... @@ -8231,7 +8223,7 @@ SELECT pg_catalog.setval(&#39;log_guia_remessa_idlogguia_seq&#39;, 1, false);
8231 8223  
8232 8224 CREATE TABLE log_guia_remessa (
8233 8225 idlogguia integer DEFAULT nextval('log_guia_remessa_idlogguia_seq'::regclass) NOT NULL,
8234   - "login" character varying(80) NOT NULL,
  8226 + login character varying(80) NOT NULL,
8235 8227 idcli character varying(10) NOT NULL,
8236 8228 dt_inicial date NOT NULL,
8237 8229 dt_final date NOT NULL,
... ... @@ -10471,7 +10463,7 @@ CREATE TABLE acontecimento (
10471 10463 data_cadastro timestamp without time zone NOT NULL,
10472 10464 data_exclusao timestamp without time zone,
10473 10465 ativo smallint DEFAULT (1)::smallint,
10474   - "local" character varying,
  10466 + local character varying,
10475 10467 contato character varying,
10476 10468 link character varying
10477 10469 );
... ... @@ -10623,7 +10615,6 @@ CREATE TABLE itinerario (
10623 10615 --
10624 10616  
10625 10617 CREATE SEQUENCE menu_cod_menu_seq
10626   - START WITH 1
10627 10618 INCREMENT BY 1
10628 10619 NO MAXVALUE
10629 10620 MINVALUE 0
... ... @@ -10634,7 +10625,7 @@ CREATE SEQUENCE menu_cod_menu_seq
10634 10625 -- Name: menu_cod_menu_seq; Type: SEQUENCE SET; Schema: pmicontrolesis; Owner: -
10635 10626 --
10636 10627  
10637   -SELECT pg_catalog.setval('menu_cod_menu_seq', 1, false);
  10628 +SELECT pg_catalog.setval('menu_cod_menu_seq', 20709, true);
10638 10629  
10639 10630  
10640 10631 --
... ... @@ -10954,7 +10945,6 @@ CREATE TABLE topo_portal (
10954 10945 --
10955 10946  
10956 10947 CREATE SEQUENCE tutormenu_cod_tutormenu_seq
10957   - START WITH 1
10958 10948 INCREMENT BY 1
10959 10949 NO MAXVALUE
10960 10950 MINVALUE 0
... ... @@ -10965,7 +10955,7 @@ CREATE SEQUENCE tutormenu_cod_tutormenu_seq
10965 10955 -- Name: tutormenu_cod_tutormenu_seq; Type: SEQUENCE SET; Schema: pmicontrolesis; Owner: -
10966 10956 --
10967 10957  
10968   -SELECT pg_catalog.setval('tutormenu_cod_tutormenu_seq', 1, false);
  10958 +SELECT pg_catalog.setval('tutormenu_cod_tutormenu_seq', 16, true);
10969 10959  
10970 10960  
10971 10961 --
... ... @@ -11800,7 +11790,7 @@ CREATE TABLE cliente (
11800 11790 ref_usuario_exc integer,
11801 11791 ref_usuario_cad integer NOT NULL,
11802 11792 ref_idpes integer NOT NULL,
11803   - "login" integer,
  11793 + login integer,
11804 11794 senha character varying(255),
11805 11795 data_cadastro timestamp without time zone NOT NULL,
11806 11796 data_exclusao timestamp without time zone,
... ... @@ -12861,7 +12851,6 @@ CREATE TABLE infra_predio_comodo (
12861 12851 --
12862 12852  
12863 12853 CREATE SEQUENCE instituicao_cod_instituicao_seq
12864   - START WITH 1
12865 12854 INCREMENT BY 1
12866 12855 NO MAXVALUE
12867 12856 MINVALUE 0
... ... @@ -12872,7 +12861,7 @@ CREATE SEQUENCE instituicao_cod_instituicao_seq
12872 12861 -- Name: instituicao_cod_instituicao_seq; Type: SEQUENCE SET; Schema: pmieducar; Owner: -
12873 12862 --
12874 12863  
12875   -SELECT pg_catalog.setval('instituicao_cod_instituicao_seq', 1, false);
  12864 +SELECT pg_catalog.setval('instituicao_cod_instituicao_seq', 1, true);
12876 12865  
12877 12866  
12878 12867 --
... ... @@ -14241,7 +14230,6 @@ CREATE TABLE tipo_regime (
14241 14230 --
14242 14231  
14243 14232 CREATE SEQUENCE tipo_usuario_cod_tipo_usuario_seq
14244   - START WITH 1
14245 14233 INCREMENT BY 1
14246 14234 NO MAXVALUE
14247 14235 MINVALUE 0
... ... @@ -14252,7 +14240,7 @@ CREATE SEQUENCE tipo_usuario_cod_tipo_usuario_seq
14252 14240 -- Name: tipo_usuario_cod_tipo_usuario_seq; Type: SEQUENCE SET; Schema: pmieducar; Owner: -
14253 14241 --
14254 14242  
14255   -SELECT pg_catalog.setval('tipo_usuario_cod_tipo_usuario_seq', 1, false);
  14243 +SELECT pg_catalog.setval('tipo_usuario_cod_tipo_usuario_seq', 3, true);
14256 14244  
14257 14245  
14258 14246 --
... ... @@ -15224,7 +15212,7 @@ CREATE SEQUENCE imagem_cod_imagem_seq
15224 15212 -- Name: imagem_cod_imagem_seq; Type: SEQUENCE SET; Schema: portal; Owner: -
15225 15213 --
15226 15214  
15227   -SELECT pg_catalog.setval('imagem_cod_imagem_seq', 180, true);
  15215 +SELECT pg_catalog.setval('imagem_cod_imagem_seq', 186, true);
15228 15216  
15229 15217  
15230 15218 --
... ... @@ -15251,7 +15239,6 @@ CREATE TABLE imagem (
15251 15239 --
15252 15240  
15253 15241 CREATE SEQUENCE imagem_tipo_cod_imagem_tipo_seq
15254   - START WITH 1
15255 15242 INCREMENT BY 1
15256 15243 NO MAXVALUE
15257 15244 MINVALUE 0
... ... @@ -15262,7 +15249,7 @@ CREATE SEQUENCE imagem_tipo_cod_imagem_tipo_seq
15262 15249 -- Name: imagem_tipo_cod_imagem_tipo_seq; Type: SEQUENCE SET; Schema: portal; Owner: -
15263 15250 --
15264 15251  
15265   -SELECT pg_catalog.setval('imagem_tipo_cod_imagem_tipo_seq', 1, false);
  15252 +SELECT pg_catalog.setval('imagem_tipo_cod_imagem_tipo_seq', 6, true);
15266 15253  
15267 15254  
15268 15255 --
... ... @@ -15538,7 +15525,6 @@ CREATE TABLE menu_funcionario (
15538 15525 --
15539 15526  
15540 15527 CREATE SEQUENCE menu_menu_cod_menu_menu_seq
15541   - START WITH 1
15542 15528 INCREMENT BY 1
15543 15529 NO MAXVALUE
15544 15530 MINVALUE 0
... ... @@ -15549,7 +15535,7 @@ CREATE SEQUENCE menu_menu_cod_menu_menu_seq
15549 15535 -- Name: menu_menu_cod_menu_menu_seq; Type: SEQUENCE SET; Schema: portal; Owner: -
15550 15536 --
15551 15537  
15552   -SELECT pg_catalog.setval('menu_menu_cod_menu_menu_seq', 1, false);
  15538 +SELECT pg_catalog.setval('menu_menu_cod_menu_menu_seq', 68, true);
15553 15539  
15554 15540  
15555 15541 --
... ... @@ -15569,7 +15555,6 @@ CREATE TABLE menu_menu (
15569 15555 --
15570 15556  
15571 15557 CREATE SEQUENCE menu_submenu_cod_menu_submenu_seq
15572   - START WITH 1
15573 15558 INCREMENT BY 1
15574 15559 NO MAXVALUE
15575 15560 MINVALUE 0
... ... @@ -15580,7 +15565,7 @@ CREATE SEQUENCE menu_submenu_cod_menu_submenu_seq
15580 15565 -- Name: menu_submenu_cod_menu_submenu_seq; Type: SEQUENCE SET; Schema: portal; Owner: -
15581 15566 --
15582 15567  
15583   -SELECT pg_catalog.setval('menu_submenu_cod_menu_submenu_seq', 1, false);
  15568 +SELECT pg_catalog.setval('menu_submenu_cod_menu_submenu_seq', 944, true);
15584 15569  
15585 15570  
15586 15571 --
... ... @@ -15934,7 +15919,7 @@ CREATE TABLE sistema (
15934 15919 cod_sistema integer DEFAULT nextval('sistema_cod_sistema_seq'::regclass) NOT NULL,
15935 15920 nome character varying(255),
15936 15921 versao smallint NOT NULL,
15937   - "release" smallint NOT NULL,
  15922 + release smallint NOT NULL,
15938 15923 patch smallint NOT NULL,
15939 15924 tipo character varying(255)
15940 15925 );
... ... @@ -19129,6 +19114,7 @@ SET search_path = public, pg_catalog;
19129 19114  
19130 19115 INSERT INTO changelog VALUES (2, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '2_popula_dados_basicos.sql');
19131 19116 INSERT INTO changelog VALUES (1, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '1_cria_schema_inicial.sql');
  19117 +INSERT INTO changelog VALUES (3, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '3_corrige_sequences.sql');
19132 19118  
19133 19119  
19134 19120 --
... ... @@ -25323,7 +25309,7 @@ ALTER TABLE ONLY grupo_sistema
25323 25309 --
25324 25310  
25325 25311 ALTER TABLE ONLY historico_senha
25326   - ADD CONSTRAINT pk_historico_senha PRIMARY KEY ("login", senha);
  25312 + ADD CONSTRAINT pk_historico_senha PRIMARY KEY (login, senha);
25327 25313  
25328 25314  
25329 25315 --
... ... @@ -25379,7 +25365,7 @@ ALTER TABLE ONLY sistema
25379 25365 --
25380 25366  
25381 25367 ALTER TABLE ONLY usuario
25382   - ADD CONSTRAINT pk_usuario PRIMARY KEY ("login");
  25368 + ADD CONSTRAINT pk_usuario PRIMARY KEY (login);
25383 25369  
25384 25370  
25385 25371 --
... ... @@ -25387,7 +25373,7 @@ ALTER TABLE ONLY usuario
25387 25373 --
25388 25374  
25389 25375 ALTER TABLE ONLY usuario_grupo
25390   - ADD CONSTRAINT pk_usuario_grupo PRIMARY KEY (idgrp, "login");
  25376 + ADD CONSTRAINT pk_usuario_grupo PRIMARY KEY (idgrp, login);
25391 25377  
25392 25378  
25393 25379 SET search_path = alimentos, pg_catalog;
... ... @@ -26417,7 +26403,7 @@ ALTER TABLE ONLY categoria_nivel
26417 26403 --
26418 26404  
26419 26405 ALTER TABLE ONLY cliente
26420   - ADD CONSTRAINT cliente_login_ukey UNIQUE ("login");
  26406 + ADD CONSTRAINT cliente_login_ukey UNIQUE (login);
26421 26407  
26422 26408  
26423 26409 --
... ...