【问题标题】:Two databases in flask with sqlalchemy, one for reading and one for writing data, is it possible使用sqlalchemy的flask中的两个数据库,一个用于读取数据,一个用于写入数据,是否可以
【发布时间】:2020-12-07 17:48:44
【问题描述】:

我有一个 Flask 网络应用程序,我需要两个使用两个现有数据库。第一个数据库(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 common ORM做ti

SQLALCHEMY_DATABASE_URI = ""   
db = SQLAlchemy(app)

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

我的问题是,如何使用 automap 读取 DB-A 以及 NOT-automap 写入 DB-B?

谢谢

【问题讨论】:

    标签: flask sqlalchemy flask-sqlalchemy


    【解决方案1】:

    你看过this part 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)
    

    【讨论】:

      猜你喜欢
      • 2016-08-07
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 2013-03-31
      • 2018-04-12
      • 1970-01-01
      相关资源
      最近更新 更多