3

Django 1.3 non-rel을 django-mongodb_engine 0.4와 함께 사용했습니다. 사용되는 Mongodb 버전은 1.8.2였으며 모든 것이 잘 작동했습니다. 최근에 나는 mongodb 2.4.2 (최신 안정판) 릴리스로 업그레이드하려고 시도했고 다음과 같은 문제에 직면했습니다. 나는 다음과 같은 예외를 얻을 DB를 동기화하면Django non-rel이 mongo와 db를 동기화하지 못했습니다. 2.4.2

:

Traceback (most recent call last): 
File "manage.py", line 14, in <module> 
execute_manager(settings) 
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line  
438, in execute_manager 
utility.execute() 
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 
379, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 191, 
in run_from_argv 
self.execute(*args, **options.__dict__) 
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 220, 
in execute 
output = self.handle(*args, **options) 
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 351, 
in handle 
return self.handle_noargs(**options) 
File "/usr/local/lib/python2.7/dist- 
packages/django/core/management/commands/syncdb.py", line 90, in handle_noargs 
sql, references = connection.creation.sql_create_model(model, self.style, seen_models) 
File "/usr/local/lib/python2.7/dist-packages/django_mongodb_engine/creation.py", line 
142, in sql_create_model 
self.connection.get_collection(model._meta.db_table, **kwargs) 
File "/usr/local/lib/python2.7/dist-packages/django_mongodb_engine/base.py", line 98, 
in get_collection 
collection = self.collection_class(self.database, name, **kwargs) 
File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 108, in 
__init__ 
self.__create(kwargs) 
File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 119, in 
__create 
self.__database.command("create", self.__name, **options) 
File "/usr/local/lib/python2.7/dist-packages/pymongo/database.py", line 393, in command 
msg, allowable_errors) 
File "/usr/local/lib/python2.7/dist-packages/pymongo/helpers.py", line 144, in 
_check_command_response 
raise OperationFailure(msg % details["errmsg"]) 
pymongo.errors.OperationFailure: command SON([('create', u'auth_permission'), ('max', 
False), ('capped', False), ('size', 0.0)]) failed: exception: create collection invalid 
size spec 
예외의 원인은 이전 MongoDB를의 verions (< 1.8)에 비해 몽고의 2.X 버전 간의 호환성 어떤 종류의 것 같다

.

오류로부터 분명히 알 수 있듯이이 제한 량/제한 량이없는 생성 문제를 해결할 수있는 방법이 있습니까?

+0

같은 문제가 있습니다. 이 문제를 어떻게 해결해야할지 모르겠다. – user1102018

답변

1

현재 createCollection 명령은 size 매개 변수의 유효성을 검사하고 0보다 크지 않은 숫자를 잘못된 것으로 간주합니다.

this 2.3.1 commit부터 전달 된 크기가 숫자 인 경우 0 확인이 수행됩니다. 이전 어설 나중에이었고,이 변화는 티켓 SERVER-7543의 결과였다 - 핵심 문제는 장고에 여기 심도있게 설명 :이 포함 ​​된 버전을 사용하는 경우 https://github.com/django-nonrel/mongodb-engine/pull/134/files#L4L134

: 여기에 실제 수정과 https://github.com/django-nonrel/mongodb-engine/pull/134 난 당신이 장고 목록에 문제를 제기해야 할 것 같아요.