[英]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.