Django Cassandra Engine - the Cassandra backend for Django
BSD-2-CLAUSE License
All tools you need to start your journey with Apache Cassandra and Django Framework!
Discord: https://discord.gg/pxunMGmDNc
python-driver
and optionally dse-driver
from DataStaxflush
, migrate
, sync_cassandra
, inspectdb
anddbshell
commandsCqlengine
and cassandra.cluster.Cluster
connection optionsHelp support ongoing development and maintenance by sponsoring Django Cassandra Engine.
Recommended installation:
pip install django-cassandra-engine
Add django_cassandra_engine
to INSTALLED_APPS
in your settings.py
file:
INSTALLED_APPS = ('django_cassandra_engine',) + INSTALLED_APPS
Change DATABASES
setting:
DATABASES = {
'default': {
'ENGINE': 'django_cassandra_engine',
'NAME': 'db',
'TEST_NAME': 'test_db',
'HOST': 'db1.example.com,db2.example.com',
'OPTIONS': {
'replication': {
'strategy_class': 'SimpleStrategy',
'replication_factor': 1
}
}
}
}
Define some model:
# myapp/models.py
import uuid
from cassandra.cqlengine import columns
from django_cassandra_engine.models import DjangoCassandraModel
class ExampleModel(DjangoCassandraModel):
example_id = columns.UUID(primary_key=True, default=uuid.uuid4)
example_type = columns.Integer(index=True)
created_at = columns.DateTime()
description = columns.Text(required=False)
Run ./manage.py sync_cassandra
Done!
To connect to a hosted Cassandra cluster that provides a secure connection bundle (ex. DataStax Astra) change the DATABASES
setting of your settings.py:
DATABASES = {
'default': {
'ENGINE': 'django_cassandra_engine',
'NAME': 'keyspace_name',
'TEST_NAME': 'table_name',
'USER': 'token',
'PASSWORD': token_value,
'OPTIONS': {
'connection': {
'cloud': {
'secure_connect_bundle': '/path/to/secure/bundle.zip'
},
}
}
}
}
The documentation can be found online here.
Copyright (c) 2014-2024, Rafał Furmański.
All rights reserved. Licensed under BSD 2-Clause License.