Notes on trying the Django-nonrel MongoDB backend
http://www.allbuttonspressed.com/blog/django/2010/05/MongoDB-backend-for-Django-nonrel-released
Install and run MongoDB¶
$ cd ~/lib
$ curl http://downloads.mongodb.org/linux/mongodb-linux-i686-latest.tgz | tar zx
$ ln -s mongodb-linux-i686-2010-06-08 mongodb
$ mkdir -p ~/var/mongodb/db
$ ~/lib/mongodb/bin/mongod --dbpath ~/var/mongodb/db
Pip requirements file, ~/src/DjangoMongo/requirements.txt¶
pymongo -e git+http://github.com/aparo/django-mongodb-engine.git#egg=django_mongodb_engine -e hg+http://bitbucket.org/wkornewald/django-nonrel#egg=Django -e hg+http://bitbucket.org/wkornewald/djangotoolbox#egg=djangotoolbox
Setup¶
$ cd ~/lib/python-environments
$ virtualenv --no-site-packages --distribute djangomongo
$ source ~/lib/python-environments/djangomongo/bin/activate
$ cd ~/src/DjangoMongo
$ pip install -r requirements.txt
$ django-admin.py startproject djangomongo
Django settings file¶
Changes in ~/src/DjangoMongo/djangomongo/settings.py:
DATABASES = {
'default': {
'ENGINE': 'django_mongodb_engine.mongodb',
'NAME': 'test',
'USER': '',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '27017',
'SUPPORTS_TRANSACTIONS': False,
}
}
INSTALLED_APPS = (
# ...
'djangotoolbox',
)
Syncdb¶
Running syncdb gave me the following error.
$ python manage.py syncdb
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/home/saltycrane/lib/python-environments/djangomongo/src/django/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/home/saltycrane/lib/python-environments/djangomongo/src/django/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/saltycrane/lib/python-environments/djangomongo/src/django/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/home/saltycrane/lib/python-environments/djangomongo/src/django/django/core/management/base.py", line 218, in execute
output = self.handle(*args, **options)
File "/home/saltycrane/lib/python-environments/djangomongo/src/django/django/core/management/base.py", line 347, in handle
return self.handle_noargs(**options)
File "/home/saltycrane/lib/python-environments/djangomongo/src/django/django/core/management/commands/syncdb.py", line 84, in handle_noargs
sql, references = connection.creation.sql_create_model(model, self.style, seen_models)
File "/home/saltycrane/lib/python-environments/djangomongo/src/django-mongodb-engine/django_mongodb_engine/mongodb/creation.py", line 87, in sql_create_model
opts = model._mongo_meta
AttributeError: type object 'Permission' has no attribute '_mongo_meta'</module>
Comments
I think you might need the Permission backend from here: https://github.com/fhahn/django-permission-backend-nonrel
