KingOfNothing
@KingOfNothing

Хранение и обработка версий данных средствами PostgreSql?

Есть ли возможность в PostgreSql организовать средствами самой DBMS или с помощью каких-то плагинов сохранение истории изменений данных в базе данных (например, как binary log в MySQL)? Интересует так же, чтобы эту историю можно было прочесть и восстановить данные до какой-то версии.


В общем, интересует как можно организовать версионность базы данных, например, так, что каждая транзакция генерирует новую версию базы, и есть возможность откатываться от одной до другой версии (вернее, не совсем откатываться — но прочесть внесенные изменения, и восстановить какую-нибудь сущность в БД до нужного состояния).


P.S. в данный момент, планируется делать на уровне логики приложения и хранить изменения в самой базе. Хотелось бы достичь этого же эффекта средствами dbms, если это возможно.
  • Вопрос задан
  • 4037 просмотров
Пригласить эксперта
Ответы на вопрос 2
XuMiX
@XuMiX
Ответ написан
Комментировать
@Isopropil
Имеется в виду что-то типа ретроспективных запросов в Oracle? К сожалению, PostgreSQL этого пока не умеет.
Если требуется хранить историю изменений данных — можно написать триггер, который будет скидывать историю изменений в таблицу, т.е. не обязательно делать всё на уровне приложения. Можно написать универсальный триггер, например, на pl/perl или даже оформить в виде плагина на C (производительность будет выше), который будет писать историю в удобном для Вас виде. Если устраивает — могу помочь в написании.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы