{"categories":[{"label":"Front-Ends","url":"https://skillfed.io/packages/category/database-front-ends/2"}],"enrichment":{"capability":"A Django database backend that lets you use Django ORM to query and manage ClickHouse tables directly, treating ClickHouse like any other Django-supported database.","skillfed_tags":["django-integration","columnar-analytics","multi-database-routing"],"use_cases":["Store and query high-volume event logs (network traffic, application metrics, security events) using Django models without building a separate pipeline.","Build analytics dashboards that read from ClickHouse while keeping transactional data in PostgreSQL or MySQL via Django's multi-database router.","Run time-series aggregations and sampling queries on large datasets using ClickHouse-specific clauses through Django ORM.","Migrate an existing Django application to use ClickHouse for analytical tables without rewriting query code or losing ORM familiarity.","Test ClickHouse table schemas and migrations in a Django TestCase or pytest-django environment before deploying to production."],"what_it_does":"Django ClickHouse Backend is a Django database backend that bridges Django's ORM to ClickHouse, a columnar analytics database. It lets you define ClickHouse tables using Django models and query them through the familiar ORM API, eliminating the need for intermediate storage or manual data synchronization. The backend uses clickhouse-driver for native TCP protocol connections and includes connection pooling.\n\nThe package supports most Django ORM operations, ClickHouse-specific features like table engines and skipping indexes, schema migrations, test database creation, and numpy/pandas result deserialization. However, it has important limitations: ClickHouse lacks transaction and constraint support, so foreign keys and unique constraints are not enforced at the database level; outer joins behave differently (missing columns become zero/empty rather than NULL); and aggregation functions return 0 or NaN instead of NULL on empty datasets. Multi-database routing is typically used to keep ClickHouse models separate from relational tables in the same Django project.","worth_installing":"Yes, if you need to integrate ClickHouse into a Django project and want to avoid writing raw SQL or managing a separate driver. The low install friction, active maintenance, and MIT license make it a practical choice. However, carefully evaluate the limitations: no transaction support, missing constraint enforcement, and non-standard NULL semantics in joins and aggregations. Test migrations thoroughly in a staging environment before production use, and confirm that your query patterns fit within the supported ORM subset."},"id":"django-clickhouse-backend","links":{"html":"https://skillfed.io/packages/django-clickhouse-backend","md":"https://skillfed.io/packages/django-clickhouse-backend.md","pypi":"https://pypi.org/project/django-clickhouse-backend/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-08-09","license_spdx":null,"license_treatment":"permissive","name":"django-clickhouse-backend","python_support":"supports_current","summary":"Django clickHouse database backend"},"popularity":{"monthly_downloads":152401,"position":10902,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"2.0"}
