Единственный надежный способ сделать это - использовать триггеры базы данных. Недостатком является то, что есть больше сложности.
Например, один из подходов заключается в том, что всякий раз, когда модель сохраняется (то есть вызывается save ()), вы должны позаботиться о том, чтобы предыдущие данные сохранялись / изменения регистрировались.
Проблемы с таким подходом заключаются в том, что если вы выполняете какую-либо операцию массового изменения (например, ОБНОВЛЕНИЕ ... ГДЕ, УДАЛЕНИЕ ... ГДЕ), которая может повлиять на более чем одну строку, Peewee может не иметь представления о том, какие изменения .
Если вы в буквальном смысле говорите о отслеживании «всех» изменений, единственный способ сделать это - использовать триггеры.
Если, с другой стороны, вы хотите отслеживать изменения в подмножестве полей, которые изменяются только особым образом, вы можете обработать это на уровне модели (переопределив save () или что-то еще).
Возможно, вас также заинтересует расширение signals
, которое может выполнять обратные вызовы при сохранении / удалении моделей: http://docs.peewee -orm.com / ru / latest / peewee / playhouse.html # сигналов