Árvore de páginas

Objetivo

Este documento tem como objetivo explicar o funcionamento do processo de atualização de scripts de banco de dados do integrador. 

Funcionamento

O sistema cria uma tabela contendo o número da versão dos scripts executados.  
Quando executado, o sistema busca os scripts com número MAIOR que a versão atual do sistema, e os executa em ordem crescente. 
O resultado do processo de atualização será exibido no console (prompt de comando) e será salvo em formato texto também no diretório "_logs", que será criado ao executar a aplicação. 

Os scripts deverão estar em arquivos com extensão ".sql" e nomeados conforme a sua versão. Por exemplo: 

  • 22.01.001.sql
  • 22.01.002.sql
  • 22.01.003.sql

Utilização

Para utilizar como módulo de outros projetos: 

  • adicionar referência para o projeto IntegradorNativoVtex.Atualizador 
  • incluir em um arquivo appsettings.json as configurações necessárias no formato informado neste documento (próxima seção) 
  • invocar o método de extensão AddIntegradorNativoVtexAtualizador() em um objeto IServiceCollection para carregar as dependências necessárias 
  • invocar o método Executa() de um objeto do tipo IAtualizacaoScripts incluso via Injeção de Dependência 

Configurações necessárias no arquivo 'appsettings.json'

{
  "ConfiguracoesAtualizador": {
    "CaminhoParaArquivosSql": ""     // o endereço do diretório onde estão os arquivos sql 
  },
  "ConnectionString": {
    "Oracle": "",                     // a string de conexão do banco 
  }
}

Regras para scritps 

  • cada comando sql deverá terminar com /
  • os scripts que NÃO estiverem em um bloco begin/end NÃO devem terminar em ;
  • triggers deverão ser criadas com CREATE OR REPLACE 
  • antes da criação de uma nova tabela, verificar se a mesma não existe através da procedure SP_ECMIV_DROP_TABLE_IF_EXISTS 
  • antes da criação de uma nova sequence, verificar se a mesma não existe através da procedure SP_ECMIV_DROP_SEQ_IF_EXISTS 
  • a execução de scripts 'alter table' deverá ser feita através da procedure SP_ECMIV_ALTER_TABLE_IF_EXISTS 

Criar um usuário 

  • durante a implantação, é necessário criar um novo usuário do tipo GESTOR
  • para isso, deve-se executar o seguinte script, trocando os textos SEU_NOME e SEU_EMAIL pelas informações corretas do gestor a ser cadastrado: 

INSERT INTO ECM_USUARIOS (DESCNOME, DESCSENHA, INDSITUACAO, EMAIL, SEQUSUARIONIVEL)
VALUES (SEU_NOME, '90F80B22F53A5D4D72F7B126EF4B1F44', 'A', SEU_EMAIL, 3) 
/

  • a senha criptografada é Mudar@123, e pode ser alterada no painel da aplicação 

Para clientes novos que NÃO utilizaram o integrador em versão anterior à Janeiro de 2022 

  • o sistema cria a tabela de versionamento automaticamente 
  • todos os scripts de versionamento são executados em ordem crescente 

Para clientes que utilizaram o integrador anteriormente à versão 22.01.000 (lançada em Janeiro de 2022) 

  • caso este script não seja executado, ao executar o atualizador os dados configurados (incluindo de usuários) serão sobrescritos com os valores padrão e precisarão ser reconfigurados 
  • executar TODO o seguinte script no banco de dados: 

create table ecm_versionamento (
    seqversao number not null, 
    versao varchar(10) not null,
    usuultatualizacao VARCHAR2(50) not null,
    dtaultatualizacao DATE not null)
/
CREATE SEQUENCE S_ECM_VERSIONAMENTO
/
CREATE OR REPLACE TRIGGER TSBI_ECM_VERSIONAMENTO
    BEFORE INSERT ON ecm_versionamento
    FOR EACH ROW
BEGIN
    SELECT S_ECM_VERSIONAMENTO.NEXTVAL INTO :NEW.seqversao FROM DUAL;
END;
/
insert into ecm_versionamento 
    (versao, usuultatualizacao, dtaultatualizacao) 
values 
    ('1.01.000', 'CONSINCO', TO_DATE(sysdate, 'dd/mm/yyyy hh24:mi:ss'))
/


  • Sem rótulos