Breadcrumbs

Atualização de banco de dados para versão recompilada JAVA

Falha

Não deveria ocorrer, mas caso tenhamos novamente situações que já ocorreram, que precisamos “recompilar” uma versão já liberada que está rodando em cliente, agora é possível atualizar o banco de dados se houver alteração de banco nessa recompilação, que antes não era possível, pois quando a aplicação era iniciada, ela verificava na TBConfiguration a versão do banco de dados, caso fosse diferente do sistema, ele faria o update ou rollback. No cenário de recompilação, ele nunca iria atualizar o banco, pois a versão que está rodando, vai ser sempre igual à do banco de dados.

Solução

Então, o que foi feito?
Foi adicionado um campo novo na TBProperties, chamada de build, ela armazena o número da build (controle interno).
Por default, o número da build é 1 ou seja, não é uma versão recompilada.

Vou fazer uma recompilação de versão, com alterações em banco, o que fazer pro update funcionar?

  1. Deve-se trocar o número da BUILD_NUMBER na classe ConstantHelper.java.

image-20221123-233944.png

Exemplo: Alterar para 2.

  1. Deve-se criar uma pasta chamada “Build” no resource do projeto core, dentro da pasta da versão, onde já contém as queries, criar mais uma pasta com o número do Build, contido na variável BUILD_NUMBER na classe ConstantHelper.java que foi alterado no passo à cima, feito isso, deve-se criar o arquivo query.json, no mesmo padrão das outras, separadas por common, agent, concentrador e sat server.

Obs: O nome do arquivo DEVE ser query.json
Exemplo:

image-20221123-234021.png

Pronto, ao subir o sistema recompilado, o mesmo irá identificar que no banco de dados, na TBProperties, o valor da build é 1, e o da variável BUILD_NUMBER é diferente de 1, portanto, buscará o resource na pasta e executará as queries. Ao executar elas, atualizará o campo da TBProperties para o valor da variável BUILD_NUMBER, para que quando reiniciar a aplicação, não executar novamente as queries.

Obs: Não esquecer de adicionar as queries criadas para a recompilação aos arquivos da pasta Rollback e Update, pois caso alguém utilize essa versão recompilada sem banco de dados criado, o mesmo irá executar apenas as queries dos arquivos SqlRollback/query.json e SqlUpdate/query.json, então, os mesmos devem estar completos.

Outras informações

Fonte: Rainmakers Team