Oto przydatny skrypt do wstępnego przetwarzania pg_dump
wyjście, aby było bardziej odpowiednie do porównywania i przechowywania w kontroli wersji:
https://github.com/akaihola/pgtricks
pg_dump_splitsort.py
dzieli zrzut na następujące pliki:
0000_prologue.sql
:wszystko aż do pierwszej KOPII0001_<schema>.<table>.sql
.
.NNNN_<schema>.<table>.sql
:dane dla każdej tabeli posortowane według pierwszego pola9999_epilogue.sql
:wszystko po ostatniej KOPII
Pliki danych tabeli są ponumerowane, więc do odtworzenia bazy danych można użyć prostego, posortowanego połączenia wszystkich plików:
$ cat *.sql | psql <database>
Odkryłem, że dobrym sposobem na szybkie przyjrzenie się różnicom między zrzutami jest użycie meld
narzędzie w całym katalogu:
$ meld old-dump/ new-dump/
Przechowywanie zrzutu w kontroli wersji daje również przyzwoity obraz różnic. Oto jak skonfigurować git, aby używał koloru w różnicach:
# ~/.gitconfig
[color]
diff = true
[color "diff"]
frag = white blue bold
meta = white green bold
commit = white red bold
Uwaga: Jeśli utworzyłeś/upuściłeś/zmieniłeś nazwy tabel, pamiętaj, aby usunąć wszystkie .sql
pliki przed przetworzeniem nowego zrzutu.