获取与 SQLAlchemy 对象关联的引擎

问题描述 投票:0回答:1

我已将多个引擎与 SQLAlchemy 对象关联。要使用

sessionmaker
创建会话,我需要获得正确的
engine
。当我尝试 db.engine (db 是我的 SQLAlchemy 对象)时,我得到默认引擎。如何获取其他关联引擎?如果我能提供一把钥匙并获得合适的引擎,我会更愿意。

我使用 Flask 的

SQLALCHEMY_BINDS
来关联多个引擎。

flask sqlalchemy flask-sqlalchemy
1个回答
16
投票

使用

db.engines[bind_key]
获取特定引擎。
db.engine
相当于
db.engines[None]

但是,您不需要自己设置会话,Flask-SQLAlchemy 已经具备了在使用

db.session
时使用正确绑定的所有部分。


在 Flask-SQLAlchemy 3 之前,请使用

db.get_engine(bind=bind_key)
db.get_engine()
相当于
db.get_engine(bind=None)

© www.soinside.com 2019 - 2024. All rights reserved.