Skip to content

teury/django-cassandra-engine

 
 

Repository files navigation

Django Cassandra Engine

Latest Version https://api.travis-ci.org/r4fek/django-cassandra-engine.svg?branch=master Downloads

django-cassandra-engine is a database wrapper for Django Framework. It uses the latest cassandra-driver while primarily utilizing Cqlengine which is currently the best Cassandra CQL 3 Object Mapper for Python and was integrated into cassandra-driver.

License:2-clause BSD
Keywords:django, cassandra, orm, nosql, database, python
URL (pypi):django-cassandra-engine

Installation

Recommended installation:

pip install django-cassandra-engine

Usage

  1. Add django-cassandra-engine to INSTALLED_APPS in your settings.py file:

    INSTALLED_APPS = ('django_cassandra_engine',) + INSTALLED_APPS
    

IMPORTANT: This app should be the first app on INSTALLED_APPS list.

  1. Also 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
                }
            }
        }
    }
    
  2. Define some model:

    #  myapp/models.py
    import uuid
    from cassandra.cqlengine import columns
    from cassandra.cqlengine.models import Model
    
    class ExampleModel(Model):
        read_repair_chance = 0.05 # optional - defaults to 0.1
        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)
    
  3. Run ./manage.py sync_cassandra

  4. Done!

Documentation

You can find documentation here.

About

Django Cassandra Engine - the Cassandra backend for Django

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 61.0%
  • CSS 29.3%
  • HTML 8.0%
  • JavaScript 1.7%