> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Atualizando o Midaz

> Encontre o procedimento de upgrade de um deploy do Midaz e as regras do produto a conferir antes de atualizar.

Manter o Midaz atualizado significa trabalhar com os recursos, patches de segurança e melhorias mais recentes. Atualizações regulares também mantêm o Midaz compatível com outros componentes e ajudam a evitar problemas causados por dependências desatualizadas.

> [!NOTE]
>
> 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](https://docs.lerian.studio/pt/products/midaz/database-migrations.md) para detalhes.

## Atualizando um deploy

***

Para instalar, atualizar ou desinstalar um deploy do Midaz, consulte o [README do chart do Midaz](https://github.com/LerianStudio/helm/tree/main/charts/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](https://docs.lerian.studio/pt/products/midaz/migrating-to-api-v2.md).

Antes de atualizar, confira estas regras do produto:

* Com `DEPLOYMENT_MODE=saas` ou `MULTI_TENANT_ENABLED=true`, o Ledger não inicia sem autenticação. Consulte [Segurança](https://docs.lerian.studio/pt/products/midaz/security.md).
* Mantenha `LCRYPTO_HASH_SECRET_KEY` e `LCRYPTO_ENCRYPT_SECRET_KEY` inalteradas. 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](https://docs.lerian.studio/pt/products/midaz/midaz-version-compatibility.md).
* 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_URL` está definida, o Ledger não inicia com `TRACER_TRANSPORT=rest`. Se você definiu `TRACER_TRANSPORT=rest`, remova `TRACER_TRANSPORT` antes de atualizar. Depois, defina `TRACER_BASE_URL` com o endereço gRPC do Tracer (`TRACER_GRPC_PORT`, `:4021` por padrão). Consulte [Variáveis de ambiente do Midaz](https://docs.lerian.studio/pt/products/midaz/midaz-environment-variables.md).
* Rode a v4.2.0 ou superior em todas as instâncias do Ledger antes de definir `deferrable` em uma tarifa. Depois de defini-lo, não faça rollback do Ledger para uma versão anterior. Consulte [Dívida de tarifa](https://docs.lerian.studio/pt/products/midaz/fees/fee-debt.md).
* A partir da v4.3.0, o Ledger publica mensagens de auditoria de transações apenas quando `AUDIT_LOG_ENABLED=true`. Consulte [Auditabilidade](https://docs.lerian.studio/pt/products/midaz/auditability.md).
* A partir da v4.3.0, o `/readyz` verifica o RabbitMQ pela API de gerenciamento em `RABBITMQ_HEALTH_CHECK_URL`, com as credenciais de `RABBITMQ_DEFAULT_USER`. Uma verificação com falha faz o `/readyz` responder `503`. 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 `scheme` em uma transação ou vinculem `optionalOperationRoutes` em uma rota contábil. Um Ledger anterior recusa `scheme` e 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. A [nota de upgrade do chart do Midaz](https://github.com/LerianStudio/helm/blob/main/charts/midaz/docs/UPGRADE-9.8.md) traz 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 `true` ou `false`, um número precisa ser inteiro e uma duração precisa de uma unidade, como `12s`. Confira os seus valores antes de atualizar. Consulte [Variáveis de ambiente do Midaz](https://docs.lerian.studio/pt/products/midaz/midaz-environment-variables.md).
* 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](https://docs.lerian.studio/pt/products/midaz/lerian-support-portal.md) 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.