我有一個Post
模型Flask應用程序跨越多個MongoDB數據庫(db1,db2,db3,...),所以我需要能夠查詢不同的dbs。
我使用的是Flask-MongoEngine
擴展名。Flask MongoEngine - 如何更改數據庫?
我__init__.py
包含以下行:
db = MongoEngine(app)
和config.py
我:
MONGODB_SETTINGS = {'DB': 'db1'}
我嘗試沒有成功如下:
- 改變
connection
參數在db
對象像這樣:
db.connection = mongoengine.connect('db2')
它沒有改變任何東西。執行post = Post.objects.all()
仍然在原始分貝上運行(db1
)。 - 在
meta
的Post
類像這樣創建別名:
'db_alias': 'db1'
後來我改變了connection
參數在db
對象是這樣的:
db.connection = mongoengine.connect('db2', alias='db1')
這確實創造db2
,但我不能連接不會將其更改爲另一個數據庫。 - 設置
MONGODB_SETTINGS
到{'DB': 'db2'}
然後db = MongoEngine(app)
這並不工作,以及
好像曾經在models.py
模型已經被加載(或連接到一個數據庫),你不能改變它的連接。
這是正確的嗎?
如何更改相同型號的數據庫?
編輯:相當於Django的是ORM中的using
參數,它允許查詢同一模型的不同數據庫。
你爲什麼要這樣做? – ford
我們的系統使用大量數據庫來託管此模型。這就是它的設計原理,所以我幾乎受限於當前的架構。 – user1102018