This project's goal is to replace the RDBMS specific backends used in Django with CouchDB using Couchdbkit.
Currently it has a moderately tested:
- Auth backend
- Session backend
- Cache backend
- Email Cache backend wraps another email backend and caches mails that could not be sent
- OpenID consumer using CouchDB store (requires django-openid)
To use this library, install Couchdbkit and reference it in your INSTALLED_APPS
in settings.py
General Instructions
Reference the
django_couchdb_utils
apps into yourINSTALLED_APPS
insettings.py
:... "django_couchdb_utils.auth", "django_couchdb_utils.sessions", "django_couchdb_utils.cache", ...
To the
COUCHDB_DATABASES
(which is used by Couchdbkit) add the couchdb utils apps that you plan to use:('django_couchdb_utils_auth', 'http://127.0.0.1:5984/authdb'), ('django_couchdb_utils_sessions', 'http://127.0.0.1:5984/sessionsdb'), ('django_couchdb_utils_cache', 'http://127.0.0.1:5984/cachedb'), ...
If your do not use Couchdbkit otherwise, just add the following to your
settings.py
:COUCHDB_DATABASES = ( ('django_couchdb_utils_auth', 'http://127.0.0.1:5984/somedb'), ... )
As the library doesn't make any assumptions about the Ids of the CouchDB objects it stores, it is safe to use it with an already existing database.
To enable authentication support add the
AUTHENTICATION_BACKENDS
attribute insettings.py
like:AUTHENTICATION_BACKENDS = ('django_couchdb_utils.auth.backends.CouchDBAuthBackend',)
To enable cache support add the
CACHE_BACKEND
attribute insettings.py
like:CACHE_BACKEND = "cache.couch://"
To enable sessions support add the
SESSION_ENGINE
attribute insettings.py
like:SESSION_ENGINE = "django_couchdb_utils.sessions.couchdb"
To enable the CouchDB email caching backend, set the
EMAIL_BACKEND
attribute insettings.py
like:EMAIL_BACKEND = "django_couchdb_utils.email.CouchDBEmailBackend"
# the backend that should be wrapped by the CouchDB caching backend COUCHDB_EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'