我有一个在只读模式下工作的 Django(使用 mongoengine)网站,以及一个填充该 MongoDB(由 Django 读取)的离线 python 应用程序。面对一些锁定问题,我发现复制集会有所改进,因为我可以将辅助实例设为网站数据库。
起初我只是更改了与辅助实例主机的连接,并得到了错误:
Request Method: GET
Request URL: http://localhost:8000/awesomeApp/
Django Version: 1.5
Exception Type: AutoReconnect
Exception Value:
not master
之后,我尝试通过注册连接来解决它,但没有成功,然后升级到 mongoengine 0.8.7,可以连接:
connect('awesomeApp', host='mongodb://rs63804-a0.mongoserviceprovider.com:27017,rs63804-a1.mongoserviceprovider.com:27017', replicaSet='rs63804', read_preference=ReadPreference.SECONDARY_PREFERRED, username='scott', password='tiger')
但是现在我在使用 ReadPreference.PRIMARY_PREFERRED 或 ReadPreference.SECONDARY_PREFERRED 时收到两条不同的错误消息...
使用 PRIMARY_PREFERRED 它返回:
Request Method: GET
Request URL: http://localhost:8000/awesomeapp/
Django Version: 1.5
Exception Type: OperationFailure
Exception Value:
not authorized to create index on awesomeapp.django_session
并使用 SECONDARY_PREFERRED:
Request Method: GET
Request URL: http://localhost:8000/awesomeapp/
Django Version: 1.5
Exception Type: OperationFailure
Exception Value:
database error: not authorized for query on awesomeapp.django_session
我被困在这一步,寻找一种方法来允许通过 mongoengine 和/或 mongodb 配置进行该操作,但还没有找到解决方案.. 任何想法?
提前致谢