Python 从会话中解除对象绑定

Python 从会话中解除对象绑定,python,sqlalchemy,Python,Sqlalchemy,是否可以从SQLAlchemy会话解除对象绑定 我过去常使用deepcopyit,但在使用关联代理时,我正在寻找另一种解决方案,从会话中删除对象,将其添加到另一个会话。Expunge从会话中删除对象,将持久实例发送到分离状态,将挂起实例发送到瞬态: session.expunge(obj1) 更新:可以使用将分离的对象附加到同一个会话或另一个会话 session2.add(obj1) 或合并 session2.merge(obj1) 使用merge(),给定实例不会放置在会话中,可以与其他

是否可以从SQLAlchemy会话解除对象绑定


我过去常使用
deepcopy
it,但在使用关联代理时,我正在寻找另一种解决方案,从会话中删除对象,将其添加到另一个会话。

Expunge从会话中删除对象,将持久实例发送到分离状态,将挂起实例发送到瞬态:

session.expunge(obj1)
更新:可以使用将分离的对象附加到同一个会话或另一个会话

session2.add(obj1)
或合并

session2.merge(obj1)

使用merge(),给定实例不会放置在会话中,可以与其他会话关联或分离。merge()对于获取任何类型对象结构的状态非常有用,不考虑其来源或当前会话关联,并将该状态放置在会话中

删除对象后是否可以立即将其分配给另一个会话?感谢
merge
。非常有用!我想指出的是,如果该对象有相关的对象,并且没有配置cascade=“expunge”,甚至在代码中有任何引用,那么该对象将不会被删除