我有一个脚本,可以使用upserts将数据保存并更新到Postgres数据库:
messageins = insert(Message).values(
id = message.id,
iserased = message.iserased,
erasedby = eraserid,
author = message.author.id,
body = message.body,
private = message.isprivate,
created = convTime(message.timecreated),
edited = convTime(message.timeedited),
lobby = message.lobbyid,
usermentions = message.mentions,
)
message_dict = {
c.name: c
for c in messageins.excluded
}
update_message = messageins.on_conflict_do_update(
index_elements = ["id"],
set_=message_dict
)
newdb.execute(update_message)
我正在尝试在before_update事件上运行一个函数:
def saveHistory(mapper, connect, target):
historicaldata = dict(target)
print("SaveHistory triggered\n")
event.listen(Message, 'before_insert', saveHistory)
event.listen(Message, 'before_update', saveHistory)
saveHistory函数未运行。我在有关Postgres特定事件的文档中看不到任何东西。这些事件侦听器是否应该与on_conflict_do_update()方法一起使用?