繁体   English   中英

SQLAlchemy onupdate不适用于session.merge()

[英]SQLAlchemy onupdate is not working with session.merge()

我在SQLAlchemy模型类中使用了updated_at

updated_at = Column(DateTime(timezone=True), nullable=False, default=now, onupdate=now)

我用session.merge()更新了该类的一行

row = SomeClass(**data)
session.merge(row)
session.flush()

然后我看到日志, updated_at未更新为now() 它只是更新了dict中仅更改的数据。

所以我这样改变了我的代码。

row = session.query(SomeClass).get(data['id'])
row.some_column = data['some_column']
session.flush()

然后updated_at列将被更新! merge()和直接分配之间有什么区别?

它在文档中定义为“使用merge(),既不会修改给定的“源”实例,也不会与目标会话相关联,并且可以与任意数量的其他会话对象进行合并。” sqlalchemy合并文档

merge()之后使用session.commit() merge()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM