Личный блог с мыслями и наблюдениями

Логирование изменений в Postgresql

Иногда нужно добавить логирование изменений в некоторых таблицах, для этого приходится городить сложную систему, которая будет отслеживать изменения и записывать в нужное место что поменялось, и есть большой риск забыть добавить логирование в каком-то месте, эту проблему можно изящно решить сделав триггер на изменение таблицы (весь исходный код доступен на github или можно скопировать нажав на кнопку).

Создаем таблицу, в которой будут храниться изменения:

Создаем таблицу

Создаем функцию, которая будет записывать изменения:

Создаем функцию

Вешаем триггер на нужные таблицы:

Вешаем триггер