Ecco un pratico script per la pre-elaborazione di pg_dump
output per renderlo più adatto alla differenziazione e alla memorizzazione nel controllo della versione:
https://github.com/akaihola/pgtricks
pg_dump_splitsort.py
divide il dump nei seguenti file:
0000_prologue.sql
:tutto fino alla prima COPIA0001_<schema>.<table>.sql
.
.NNNN_<schema>.<table>.sql
:dati per ogni tabella ordinati per il primo campo9999_epilogue.sql
:tutto dopo l'ultima COPIA
I file per i dati delle tabelle sono numerati in modo da poter utilizzare una semplice concatenazione ordinata di tutti i file per ricreare il database:
$ cat *.sql | psql <database>
Ho scoperto che un buon modo per dare una rapida occhiata alle differenze tra i dump è usare meld
strumento sull'intera directory:
$ meld old-dump/ new-dump/
La memorizzazione del dump nel controllo della versione offre anche una visione decente delle differenze. Ecco come configurare git per usare il colore nelle differenze:
# ~/.gitconfig
[color]
diff = true
[color "diff"]
frag = white blue bold
meta = white green bold
commit = white red bold
Nota: Se hai creato/eliminato/rinominato tabelle, ricorda di eliminare tutti i .sql
file prima di elaborare il nuovo dump.