Imagens dedicadas de migration-runner (
midaz-ledger-migrations, midaz-tracer-migrations) aplicam as migrações de schema. As aplicações não migram na inicialização. O chart Helm oficial executa essas imagens para você. Veja Migrações de banco de dados para detalhes.Atualizando um deploy
Para instalar, atualizar ou desinstalar um deploy do Midaz, consulte o README do chart do Midaz. Ele traz o procedimento e as notas de upgrade de cada versão do chart. Para passar uma integração dos contratos da API v1 para os contratos v2, consulte Migrar da API v1 para a API v2. Antes de atualizar, confira estas regras do produto:
- Com
DEPLOYMENT_MODE=saasouMULTI_TENANT_ENABLED=true, o Ledger não inicia sem autenticação. Consulte Segurança. - Mantenha
LCRYPTO_HASH_SECRET_KEYeLCRYPTO_ENCRYPT_SECRET_KEYinalteradas. O Midaz não consegue ler os dados de holders e instrumentos que criptografou com os valores anteriores. - Atualize o Midaz antes dos plugins. Consulte Compatibilidade do Midaz e dos plugins.
- Para atualizar para a v4.2.0 ou superior, atualize o Tracer antes do Ledger. Enquanto um Ledger na v4.2.0 ou superior estiver em execução, não faça rollback do Tracer para uma versão anterior à v4.2.0. Enquanto um Ledger na v4.3.0 ou superior estiver em execução, não faça rollback do Tracer para uma versão anterior à v4.3.0.
- A partir da v4.2.0, o Ledger acessa o Tracer apenas por gRPC. Quando
TRACER_BASE_URLestá definida, o Ledger não inicia comTRACER_TRANSPORT=rest. Se você definiuTRACER_TRANSPORT=rest, removaTRACER_TRANSPORTantes de atualizar. Depois, definaTRACER_BASE_URLcom o endereço gRPC do Tracer (TRACER_GRPC_PORT,:4021por padrão). Consulte Variáveis de ambiente do Midaz. - Rode a v4.2.0 ou superior em todas as instâncias do Ledger antes de definir
deferrableem uma tarifa. Depois de defini-lo, não faça rollback do Ledger para uma versão anterior. Consulte Dívida de tarifa. - A partir da v4.3.0, o Ledger publica mensagens de auditoria de transações apenas quando
AUDIT_LOG_ENABLED=true. Consulte Auditabilidade. - A partir da v4.3.0, o
/readyzverifica o RabbitMQ pela API de gerenciamento emRABBITMQ_HEALTH_CHECK_URL, com as credenciais deRABBITMQ_DEFAULT_USER. Uma verificação com falha faz o/readyzresponder503. Dê a esse usuário acesso à API de gerenciamento. - Atualize todas as instâncias do Ledger para a v4.3.0 antes que os clientes enviem
schemeem uma transação ou vinculemoptionalOperationRoutesem uma rota contábil. Um Ledger anterior recusaschemee trata toda rota de operação vinculada como obrigatória. - Atualize um Ledger da v4.2.x para a v4.3.0 com um cutover drenado, nunca com rolling update: corte o tráfego do Ledger, deixe as instâncias v4.2.x terminarem o trabalho em fila e de recuperação, pare todas as instâncias v4.2.x e só então inicie a v4.3.0. Uma instância v4.2.x continua pegando trabalho de recuperação mesmo sem tráfego e recusa o trabalho que a v4.3.0 registra, então nenhuma pode rodar ao lado da v4.3.0. O Ledger recusa escritas durante o cutover. As notas de upgrade da versão 9.8.0 do chart trazem os passos.
- Depois que um Ledger rodar a v4.3.0, não faça rollback dele para a v4.2.x, mesmo depois de drenar. Um Ledger v4.2.x pode aplicar o dinheiro de uma transação da v4.3.0 e deixar o registro e o metadata dela incompletos.
- A partir da v4.4.0, o Ledger e o Tracer não iniciam quando uma variável de ambiente tem um valor que eles não conseguem ler. O erro nomeia a variável. Um booleano aceita apenas
trueoufalse, um número precisa ser inteiro e uma duração precisa de uma unidade, como12s. Confira os seus valores antes de atualizar. Consulte Variáveis de ambiente do Midaz. - A migração de onboarding da v4.4.0 é interrompida se um ledger tiver duas contas com o mesmo alias ou dois ativos com o mesmo código. Contas e ativos excluídos não contam. A migração lista os duplicados, e o Midaz não os mescla nem os exclui. Se a migração for interrompida, entre em contato com a Lerian antes de rodar a atualização de novo. Enquanto a migração roda, as escritas de contas e de ativos esperam.
- Atualize todas as instâncias do Ledger para a v4.4.0 antes de atribuir um plano de tarifas. Um Ledger anterior não lê planos de tarifas.

