我有一个 Flask 应用程序,其Post模型跨越多个 MongoDB 数据库(db1、db2、db3...),所以我需要能够查询不同的数据库。
我正在使用Flask-MongoEngine扩展程序。
我的__init__.py包含以下行:
db = MongoEngine(app)
并且在config.py我有:
MONGODB_SETTINGS = {'DB': 'db1'}
我尝试了以下但没有成功:
- 像这样改变对象中的
connection参数db:
db.connection = mongoengine.connect('db2')
它没有改变任何东西。执行post = Post.objects.all()仍然在原始 db (db1) 上运行。 Post像这样在类中创建别名meta:
'db_alias': 'db1'
然后我像这样更改对象connection中的参数db:
db.connection = mongoengine.connect('db2', alias='db1')
这确实会创建到 的连接db2,但我无法将其更改为另一个数据库。- 设置
MONGODB_SETTINGS为{'DB': 'db2'}然后db = MongoEngine(app)
这也不起作用
似乎一旦models.py加载了模型(或连接到数据库),您就无法更改其连接。
那是对的吗?
如何更改同一模型上的数据库?
编辑:Django 等效项是usingORM 中的参数,它允许为同一模型查询不同的数据库。