在Flask-SQLAlchemy中使用同一类中的不同绑定

时间:2013-06-10 13:17:01

标签: python sqlalchemy flask bind flask-sqlalchemy

我目前有多个具有相同表和列的数据库(但内部数据不同)。很明显我需要使用绑定来访问所有这些,但它显然不像这样简单:

class WhateverTable(db.Model):
    __tablename__ = 'whatevertable'
    whatever = db.Column(db.String(255))

    def __init__(self, bind=None):
        self.__bind_key__ = bind

然后再打电话:

WhateverTable(bind='bind_key_here').query.filter_by(whatever='whatever').first()

我有办法轻松地做到这一点吗?我尝试从表类继承,然后在那里定义绑定,虽然它有效,但它确实不可扩展。

编辑:这个:Flask inherited classes of tables in multiple identical databases using __bind_key__做了我想要的,但我不想有不同的类,因为如果我添加一个新的数据库,我将不得不创建一个新的阶级和关系。

1 个答案:

答案 0 :(得分:1)

Flask-SQLAlchemy 2.1 added support for a binds parameter on the session应该做你想做的事。