Skip to content

Migration to version 4.x

Important

Version 3.21 started deprecation of settings and old checks and APIs. However, versions >=3.21 support BOTH the OLD and NEW way of configuring health checks to ease the migration.

  1. If you have health_check.db in your INSTALLED_APPS, remove revert the migration to drop the TestModel table:
python manage.py migrate db zero
  1. Update the dependencies, making sure to include the extras for the checks you want to use.
uv add 'django-health-check[psutil,celery,kafka,rabbitmq,redis,rss,atlassian]>=4.0.0'
  1. Remove these health_check.* sub‑apps from INSTALLED_APPS but keep health_check!

  2. Remove all HEALTH_CHECK_* settings from your settings file.

  3. Replace the URL include with the view and explicit checks list. Before:

# urls.py
path("ht/", include("health_check.urls"))

After (example):

# urls.py
from health_check.views import HealthCheckView

path(
    "ht/",
    HealthCheckView.as_view(
        checks=[
            "health_check.Cache",
            "health_check.Database",
            "health_check.Mail",
            "health_check.Storage",
            # 3rd party checks
            "health_check.contrib.psutil.Disk",
            "health_check.contrib.psutil.Memory",
            "health_check.contrib.celery.Ping",
            "health_check.contrib.rabbitmq.RabbitMQ",
            "health_check.contrib.redis.Redis",
        ]
    ),
)

Removals and Replacements

  • StorageHealthCheck, DefaultFileStorageHealthCheck, S3BotoStorageHealthCheck, S3Boto3StorageHealthCheck have been replaced with Storage.
  • CeleryHealthCheck has been replaced with Ping.
  • MigrationsHealthCheck has been removed; its functionality is covered by Django's check framework.
  • DatabaseHealthCheck has been replaced with Database which doesn't require a table and supports multiple database aliases.