Sistema de Migrations
A partir da versão 2023.4.0 o sistema contará com um serviço auxiliar para gerenciamento do banco de dados do sistema através de execução de comandos SQL. Esses comandos SQL serão expressados em arquivos e são chamados de migrations. As migrations podem ser criação de colunas, UPDATE em tabelas, etc.
Elas são executadas conforme a versão atual do sistema definida pelo parâmetro VersaoAtualSistema ou conforme a versão fornecida pela requisição.
Como instalar o goose
Para instalar o “Goose”, abra o cmd do Windows e utilize o seguinte comando:
go install github.com/pressly/goose/v3/cmd/goose@latest
Como criar uma migration
Clone o repositório.
Navegue até o diretório dentro do serviço, correspondente à versão do sistema onde a migration será criada:
korp.atualizacaosistema\infrastructures\migrations\{versão}.Abra o cmd do Windows e gere uma nova migration executando o seguinte comando:
goose create {nomeMigration} sql
Abrir o arquivo gerado e altere a instrução SQL que está entre as tags. Um exemplo é a migração
20240812173956_tecn_11.sql.-- +goose Up -- +goose StatementBegin A SQL da migration deverá ir aqui -- +goose StatementEnd
Note
O
{versão}é a versão do ERP que deverá ser executado a migration criada.O
{nomeMigration}deverá seguir as nomenclaturas estabelecida no próximo tópico.
Abra os Pull Requests para as branchs
mastere as respectivasreleasesque necessitam da alteração.
Nomenclatura das migrations
O nome da migration deve corresponder ao identificador da issue que está atendendo, por exemplo,
ERPK-1595.O goose irá alterara automaticamente os carácteres
-e.por_, como também sempre deixar o nome do arquivo em minúsculo.
Diferenças entre queries Migrations vs arquivo SQL de versão
Utilizamos a instrução
GOpara quebrar cada instrução lógica na atualização tradicional do sistema. No sistema de migrations isso não é necessário e elas devem ser removidas.
Quando criar uma migration
As migrações deverão ser feitas somente para os casos em que novas SQL precisam ser adicionadas depois do corte da versão, pois a atualização do sistema durante o ciclo de desenvolvimento continua sendo a query SQL de atualização (arquivo de query na pasta
SQL/Sources/do ERP).