Skip to content
/ gaudi Public

Утилита для отслеживания изменения данных в базах PostgreSQL

Notifications You must be signed in to change notification settings

creadone/gaudi

Repository files navigation

Gaudi

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

Gaudi — консольная утилита, позволяющая автоматизировать отслеживание изменений данных в базах PostgreSQL и генерировать человекочитаемые отчеты.

Как это работает

  1. В конфигурационном файле config.yml указываются настройки соединения для каждой БД, с которой мы будем работать.
  2. При запуске с аргументом -a install утилита стучится в каждую БД и создает для каждой таблицы в схеме public триггеры на insert, update, delete.
  3. Затем она создает в схеме temp таблицу gaudi_log_table, куда будут записываться измененные данные.
  4. После этого делаем запрос в сервисы через API (или как они у вас работают) и смотрим в таблицу gaudi_log_table, в нее запишутся все изменения со всех таблиц.
  5. Генерируем отчет с параметром -a report, он будет сохранен в директории ./reports.
  6. После изучения удалить все триггеры и таблицу с логами можно запуском утилиты с параметром -a uninstall.

Примеры команд

Накатить отслеживание изменений:

bundle exec ruby gaudi.rb -d service1,service2 -a install

Сгенерировать HTML-отчет об изменениях в директорию ./reports

bundle exec ruby gaudi.rb -d service1,service2 -a report

Откатить отслеживание изменений:

bundle exec ruby gaudi.rb -d service1,service2 -a uninstall

Установка

  1. Установить Ruby не ниже версии 3.0 с помощью любого менеджера версий: RVM или rbEnv.
  2. Склонировать репозиторий git clone https://github.com/creadone/gaudi.git.
  3. Перейти в директорию репозитория cd gaudi.
  4. Установить модули проекта bundle install.
  5. Запустить bundle exec ruby gaudi.rb -d service1,service2 -a install.

Ошибки при установке

Иногда RVM ругается и выплевывает при сборке Ruby в качестве ошибки что-то невнятное, в этом случае нужно проверить версию openssl и при необходимости установить свежую.

Обновить

В локальном репозитории выполнить git pull

About

Утилита для отслеживания изменения данных в базах PostgreSQL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published