@sanek_gyy

Как отследить последние изменения в БД postgre?

Как зафиксировать изменения (добавление, удаление, апдейт) данных в БД?
На проекте часто приходится заполнять/исправлять содержимое БД приложения и чтобы потом это содержимое записывалось в БД при каждом запуске. Как это делаем на данный момент:
1) С помощью liquibase создаем changelog (дамп) БД;
2) Через UI заполняем/исправляем необходимые данные
3) С помощью liquibase создаем НОВЫЙ changelog (дамп) БД с обновленной информацией;
4) С помощью intellij idea сравниваем два changeloga и ручками достаем запросы из 2-го changeloga (insert/update/delete) и вставляем в файлик для накатки бд при запуске приложения.
Данный способ решения проблемы весьма трудоемкий по нескольким причинам:
1) IDEA не совсем корректно сравнивает содержимое файлов
2) Changelog запросов формируется в последовательности таблиц и строк в БД, а не по очередности запросов.
3) Работать с xml файлами в десятки тысяч строк в принципе не удобно:)

Каким образом можно упростить и ускорить данный процесс?
  • Вопрос задан
  • 1223 просмотра
Пригласить эксперта
Ответы на вопрос 1
taliano
@taliano
Cижу здесь потому что не хочу работать. That's it.
В настройках базы указать
log_statement = 'mod'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

После перезапуска бызы в лог будут валиться INSERT, UPDATE, DELETE, TRUNCATE, COPY FROM.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы