mongoengine & mLab с автоматическим масштабированием эластичного бобового стебля

1

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

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

mongoengine.connect(db='my-database', host ='mongodb:/user:[email protected]')

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

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

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

Теги:
elastic-beanstalk
mongoengine
mlab

2 ответа

0
Лучший ответ

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

0

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

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

  • 0
    К сожалению, это, похоже, не работает, у меня есть только пользователь для базы данных, но проблема сохраняется (даже после попытки Db.logout (), перезапуска базы данных и т. Д.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню