mongoengine & mLab с автоматическим масштабированием эластичного бобового стебля - PullRequest
0 голосов
/ 28 июня 2018

Я использую базу данных MongoDB, размещенную через mLab, подключаясь через mongoengine, в приложении Elastic Beanstalk (Flask).

Я подключаюсь так:

mongoengine.connect(db='my-database', host ='mongodb:/user:password@xxx.mlab.com')

Однако, когда Elastic Beanstalk впервые масштабировал мое приложение, я начал получать следующее сообщение об ошибке:

OperationFailure: Another user is already authenticated to this database. 
You must logout first.

Я думаю, что это происходит из-за того, что один и тот же пользователь пытается аутентифицироваться в одной и той же базе данных несколько раз, как приложение автоматически масштабируется? Если это так, каково решение? Есть ли другой способ подключения к базе данных?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Понятия не имею, почему это так, но я обнаружил, что понижение с pymongo==3.7.0 до pymongo==3.6.1 под капотом mongoengine решило проблему для меня

0 голосов
/ 03 июля 2018

Это исключение означает, что вы пытаетесь аутентифицировать двух отдельных пользователей в одной базе данных. Водитель запрещает это, чтобы избежать повышения привилегий. Вы можете выйти из системы первым пользователем, вызвав Database.logout (). Тогда вы сможете успешно аутентифицировать второго пользователя.

https://api.mongodb.org/python/current/api/pymongo/database.html#pymongo.database.Database.logout

...