Skip to main content
Keeping Midaz up to date means you work with the latest features, security patches, and improvements. Regular updates also keep Midaz compatible with other components and help prevent issues caused by outdated dependencies.
Dedicated migration-runner images (midaz-ledger-migrations, midaz-tracer-migrations) apply the schema migrations. The apps do not migrate at startup. The official Helm chart runs these images for you. See Database migrations for details.

Updating a deployment


To install, upgrade, or uninstall a Midaz deployment, see the Midaz chart README. It carries the procedure and the upgrade notes of each chart version. Before you upgrade, check these product rules:
  • With DEPLOYMENT_MODE=saas or MULTI_TENANT_ENABLED=true, the Ledger does not start without authentication. See Security.
  • Keep LCRYPTO_HASH_SECRET_KEY and LCRYPTO_ENCRYPT_SECRET_KEY unchanged. Midaz cannot read the holder and instrument data that it encrypted with previous values.
  • Upgrade Midaz before its plugins. See Midaz and plugin compatibility.
  • To upgrade to v4.2.0 or later, upgrade Tracer before the Ledger. While a Ledger on v4.2.0 or later runs, do not roll Tracer back to a version earlier than v4.2.0. While a Ledger on v4.3.0 runs, do not roll Tracer back to a version earlier than v4.3.0.
  • From v4.2.0, the Ledger reaches Tracer over gRPC only. When TRACER_BASE_URL is set, the Ledger does not start with TRACER_TRANSPORT=rest. If you set TRACER_TRANSPORT=rest, remove TRACER_TRANSPORT before you upgrade. Then set TRACER_BASE_URL to the Tracer gRPC address (TRACER_GRPC_PORT, :4021 by default). See Midaz environment variables.
  • Run v4.2.0 or later on every Ledger instance before you set deferrable on a fee. After you set it, do not roll the Ledger back to an earlier version. See Fee debt.
  • From v4.3.0, the Ledger publishes transaction audit messages only when AUDIT_LOG_ENABLED=true. See Auditability.
  • From v4.3.0, /readyz checks RabbitMQ through its management API at RABBITMQ_HEALTH_CHECK_URL, with the RABBITMQ_DEFAULT_USER credentials. A failed check makes /readyz answer 503. Give that user access to the management API, or leave RABBITMQ_HEALTH_CHECK_URL empty to skip the check.
  • Upgrade every Ledger instance to v4.3.0 before clients send scheme on a transaction or link optionalOperationRoutes on an accounting route. An earlier Ledger refuses scheme and treats every linked operation route as required.