Djangonrol syncdb和mongodb:pymongo.errors.OperationFailu

2024-10-01 07:37:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在mongodb引擎中使用django-nonrl,在运行python时遇到以下错误管理.py同步数据库:

Traceback (most recent call last):
File "manage.py", line 22, in <module> execute_from_command_line(sys.argv)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/django/core/management/base.py", line 415, in handle
return self.handle_noargs(**options)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 147, in handle_noargs
index_sql = connection.creation.sql_indexes_for_model(model, self.style)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/django_mongodb_engine/creation.py", line 49, in sql_indexes_for_model
self._handle_oldstyle_indexes(ensure_index, meta)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/django_mongodb_engine/creation.py", line 116, in _handle_oldstyle_indexes
sparse=field.name in sparse_indexes)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/django_mongodb_engine/creation.py", line 42, in ensure_index
return collection.ensure_index(*args, **kwargs)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/pymongo/collection.py", line 1420, in ensure_index
self.__create_index(keys, kwargs)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/pymongo/collection.py", line 1298, in __create_index
sock_info, cmd, read_preference=ReadPreference.PRIMARY)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/pymongo/collection.py", line 208, in _command
read_concern=read_concern)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/pymongo/pool.py", line 239, in command
read_concern)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/pymongo/network.py", line 102, in command
helpers._check_command_response(response_doc, None, allowable_errors)
File "/Users/<user>/site/qmcdb/lib/python2.7/site-packages/pymongo/helpers.py", line 205, in _check_command_response
raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: The field 'sparse' is not valid for an _id index specification. Specification: { ns: "qmcdb_mongodb.django_admin_log", v: 2, sparse: false, unique: true, name: "_id_1", key: { _id: 1 } }

我不知道怎么了。我一直试图让mongodb与django合作,但我遇到了很多问题。我的设置.py公司名称:

^{pr2}$

我希望我已经发布了足够的背景信息。我真的很感激你的帮助。在


Tags: djangoinpyselfindexlibpackagesline
3条回答

我的解决方案是修改 从这里:

ensure_index(column, unique=field.unique,
                     sparse=field.name in sparse_indexes)

为此:

^{pr2}$

它似乎可以清除错误,但我确信它会使某个地方发生灾难性的失败,因为我不知道我在做什么。在

我也会等待更好的答案。在

1.在MongoDB 3.2 3.4版本中测试syncdb,仍然会出现错误。在

2.在MongoDB 2.6中,syncdb运行良好,但有一个不相关的小问题。我在版本2.6中仍然遇到了一个错误,并用这个(https://gist.github.com/ielshareef/2986459)进行了修复。在

3.django_mongodb_引擎是从django1.3派生出来的。此外,本回购协议已过时,上次承诺日期为2015年7月13日。我不推荐这个套餐。在

4.我推荐https://github.com/MongoEngine/django-mongoengine

尝试使用3.2版的Mongo数据库,mongoengine和Mongo Server 3.4有问题

相关问题 更多 >