У меня есть скрипт, который сохраняет и обновляет данные в базе данных Postgres с помощью upserts:
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 ()?