Как отслеживать изменения модели nodejs / postgresql - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть приложение для сохранения данных в Postgresql / Express / Knex / Objection. Я ищу. способ отслеживания изменений в моих моделях, чтобы я мог управлять версиями, похожими на paper_trail в рельсах, или этим портом для секвелирования и восстанавливать их: https://github.com/nielsgl/sequelize-paper-trail

Есть ли что-то, что я мог бы использовать для этого в Knex / Objection или на уровне БД для отслеживания изменений

1 Ответ

0 голосов
/ 19 апреля 2020

Ответ: Не существует ни одного обобщенного c способа сделать это ни в Objection, ни в knex.

Случайный бродяга:

Вам необходимо придумать, какие изменения вы хотели бы отслеживать и напишите какой-нибудь код, например, для хуков модели, чтобы возражать, как отслеживать изменения.

Один из способов реализовать это, например, добавить отдельную таблицу, в которой все отслеживаемые изменения записаны, например, в объект JSONB, где обновлены поля или старые значения хранятся и индексируются или что-то в этом роде. Я почти уверен, что вы не хотите добавлять отслеживание всех данных в базе данных, так как это очень быстро увеличит размер БД.

В любом случае реализация зависит от того, что вам на самом деле нравится или нужно для отслеживания данных и фактических вариантов использования, которые вам необходимо поддерживать.

Также это может работать для вас: https://wiki.postgresql.org/wiki/Audit_trigger

...