使用flask_sqlalchemy 配置多个数据库 如下配置了2个数据库
SQLALCHEMY_DATABASE_URI ='.........'
SQLALCHEMY_BINDS = {
'local': '.........'
}
然后配置2个db
db = SQLAlchemy(app)
dblocal = SQLAlchemy(app)
dblocal.session.bind = dblocal.get_engine(bind='local')
但是使用的时候
num1 = db.session.query(models.TLog).count()
num2 = dblocal.session.query(models.TLog).count()
这样第一次使用的时候 能查出正确的数据
第二次查询的时候 dblocal.session.bind就变成默认的数据库源了
只有在每次调用之前 dblocal.session.bind = dblocal.get_engine(bind='local')这样
才能查出正确的数据
说明:因为2套数据库都一样的 所有用的同1个model类 所以不能在model里面绑定__bind_key__
请问有其他的解决方式么??
还是说只能每次调用dblocal的时候都必须绑定下源?
第一次和第二次是在不同的请求中吗?
dblocal.session.bind = dblocal.get_engine(bind='local')
是只在应用初始化的时候执行的吗?如果以上都成立的话,我的假设是:
请求完成之后,session被close掉了;然后来新的请求的时候session重新bind到了默认的
SQLALCHEMY_DATABASE_URI
数据库上。