SQLAlchemy - 分离前的完整加载实例

hon*_*zas 5 python sqlalchemy

有没有办法如何在从Session中分离它之前完全加载一些SQLAlchemy ORM映射实例(及其相关对象)?我想通过管道将它发送到另一个进程,我不想在这个新进程中将它合并到session中.

谢谢

Pet*_*sen 2

options()我相信您会想在查询上eagerload()eagerload_all()使用该方法,使用or

这是我们的一个应用程序的使用示例,其中该类Controlled有一个名为 的关系changes,它引入了一堆记录,这些记录本身也有一个为每个实例引入一个对象DocumentChange的关系。这是一个两级急切加载,因此使用. 我们正在使用扩展(如果重要的话),并且 m.Session 是一个“范围”(线程本地)会话。dcoDcoeagerload_all()declarative

from sqlalchemy.orm import eagerload, eagerload_all
...
controlled_docs = (m.Session.query(m.Controlled)
    .options(eagerload_all('changes.dco'))
    .order_by('number')
    .all())
Run Code Online (Sandbox Code Playgroud)

如果这还不够,也许可以包含一个片段或文本,显示相关的 ORM 类如何相关,我可以更新答案以显示如何在您的案例中使用这些选项。