2013-03-22 33 views
1

我试图将MongoDB和Django的管理系统集成(as per the Tumblelog tutorial on the mongodb site,当我尝试到python manage.py syncdb时遇到了一个错误 - 它给了我这个错误 - 而且我不完全知道该怎么做它,谢谢!Django和Django的MongoDB问题admin

pymongo.errors.OperationFailure: command SON([('create', u'auth_permission'), ('max', False), ('capped', False), ('size', 0.0)]) failed: exception: create collection invalid size spec 

```

+0

你的尺码规格是什么? – catherine 2013-03-25 03:12:27

回答

1

似乎有许可的应用程序出现问题,尝试添加djangotoolboxsettings.py

的NoSQL的性质是不是Django的ORM兼容既不与auth,permission应用程序,他们依靠JOINS一起工作。

无论如何,你见过django-nonrel? django-nonrel提供更多的应用程序和解决方案来处理MongoDB和其他NoSQL数据存储。

0

首先,我通过完全替换sql_create_model()方法尝试statguy的解决方案 - 但它没有工作,一些错误不断出现。

那么我所做的是我在文件中添加creation.py

size = getattr(model._meta, 'collection_size', None) 
if size is not None: 
    kwargs['size'] = size 
else: 
    kwargs['size'] = 10000000000 

for option, mongo_option in [ 
     ('capped', 'capped'), 
     ('collection_size', 'size'), 
     ('collection_max', 'max') 
    ]: 
     kwargs[mongo_option] = getattr(model._meta, option, False) 

后立即从django_mongodb_engine。

这样错误不再出现。但是,由于这个巨大的价值,mongo会在磁盘上分配一些文件,这些文件基本上将我当前的数据库从几MB变为大约17GB--最终导致错误分配新文件。

所以请谨慎执行一个值。不过,我可能会错过一些东西。