使用sqlalchemy的flask中有两个数据库,一个用于读取数据,另一个用于写入数据,这是可能的



我有一个Flask web应用程序,需要两个使用两个现有数据库的应用程序。第一个数据库(DB-A(仅用于读取数据(而非写入权限(。允许我读/写第二个数据库(DB-B(。

我可以使用自动地图扩展读取DB-A

from sqlalchemy.ext.automap import automap_base
Base = automap_base()
Base.prepare(db.engine, reflect=True)
DB-A = Base.classes.visitors

在DB-B中读写我用sqlalchemy公共ORM 做ti

SQLALCHEMY_DATABASE_URI = ""   
db = SQLAlchemy(app)

根据文档SQLALCHEMY_BINDS应该做这项工作,但我找不到任何关于如何告诉我的自动映射引擎读取特定数据库的信息。

我的问题是,如何使用automap读取DB-A,同时使用NOT automap在DB-B中写入?

感谢

您看过Flask中解释如何绑定多个数据库的这部分文档吗?

文件报价:

SQLALCHEMY_DATABASE_URI = 'postgres://localhost/main'
SQLALCHEMY_BINDS = {
'users':        'mysqldb://localhost/users',
'appmeta':      'sqlite:////path/to/appmeta.db'
}

当这是设置时,您可以使用以下内容(也可以引用文档中的内容(:

>>> db.create_all()
>>> db.create_all(bind=['users'])
>>> db.create_all(bind='appmeta')
>>> db.drop_all(bind=None)

最新更新