Вот удобный скрипт для предварительной обработки pg_dump
вывода, чтобы сделать его более подходящим для различий и хранения в управлении версиями:
https://github.com/akaihola/pgtricks
pg_dump_splitsort.py
разбивает дамп на следующие файлы:
0000_prologue.sql
: все до первой КОПИИ
0001_<schema>.<table>.sql
.
.
NNNN_<schema>.<table>.sql
: данные для каждой таблицы , отсортированные по первому полю
9999_epilogue.sql
: все после последней КОПИИ
Файлы данных таблицы нумеруются, поэтому для повторного создания базы данных можно использовать простую отсортированную конкатенацию всех файлов:
$ cat *.sql | psql <database>
Я обнаружил, что хороший способ быстро взглянуть на различия между дампами - это использовать инструмент meld
для всего каталога:
$ meld old-dump/ new-dump/
Хранение дампа в управлении версиями также дает приличное представление о различиях. Вот как настроить git для использования цвета в diffs:
# ~/.gitconfig
[color]
diff = true
[color "diff"]
frag = white blue bold
meta = white green bold
commit = white red bold
Примечание: Если вы создали / удалили / переименовали таблицы, не забудьте удалить все .sql
файлы перед последующей обработкой нового дампа.