如何使用python在sqlalchemy中的简单垂直分区上执行查询

时间:2019-01-17 09:21:53

标签: python-3.x postgresql sqlalchemy

我正在尝试使用sqlalchemy和python中的简单垂直分区来处理多个数据库和架构。

已创建两个数据库引擎,并已成功配置为sessionmaker()

Session = sessionmaker()
Session.configure(binds={BaseA:engine1, BaseB:engine2})

能够成功生成所需的sql查询

driverssql = session.query(drivers)

但是当我执行上述查询以获取请求时,我得到了以下错误:

resultset = session.execute(driversql)

sqlalchemy.exc.UnboundExecutionError: Could not locate a bind configured on SQL expression or this Session  (how can i associate the correct engine with execute statement)

1 个答案:

答案 0 :(得分:0)

我在这里看到两个变体:

  1. 您可以在此处创建2个会话创建者,并根据引擎分别使用它们。
  2. 执行查询时,您可以选择必要的引擎:

    engine1 = create_engine(first_db)
    engine2 = create_engine(second_db)
    session.execute(drivers, bind=engine1)