来自一个数据库的Sqlalchemy查询对象,并将其提交到另一数据库(具有关系)

时间:2019-12-11 13:25:39

标签: python flask sqlalchemy

我有一个本地数据库和一个远程数据库,以及一个具有多个嵌套关系的对象。 两个数据库具有完全相同的架构。

我想查询本地数据库中的对象,并将对象(及其所有关系)提交到远程数据库。

我尝试了以下操作:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

local_engine = create_engine(LOCAL_URI)
dest_engine = create_engine(DEST_URI)

local_session = sessionmaker(bind=local_engine)()
dest_session = sessionmaker(bind=dest_engine)()

my_obj = local_session.query(MyObject).first()

# detach object from local session
local_session.expunge(my_obj)
dest_session.add(my_obj)

dest_session.commit()

这通过了,但是对象未正确提交,尝试再次访问它会导致此错误:

AttributeError: module 'models.engine' has no attribute 'contextual_connect'

我当时想这可能是因为延迟加载,但是我在文档中找不到以任何方式递归eager_loadjoinload并反对的方法。

有什么想法可以实现这一目标吗?

0 个答案:

没有答案