Berikut adalah skrip praktis untuk pra-pemrosesan pg_dump
output agar lebih cocok untuk diffing dan disimpan dalam kontrol versi:
https://github.com/akaihola/pgtricks
pg_dump_splitsort.py
membagi dump menjadi file-file berikut:
0000_prologue.sql
:semuanya hingga COPY pertama0001_<schema>.<table>.sql
.
.NNNN_<schema>.<table>.sql
:data untuk setiap tabel diurutkan berdasarkan kolom pertama9999_epilogue.sql
:semuanya setelah SALINAN terakhir
File untuk data tabel diberi nomor sehingga rangkaian sederhana yang diurutkan dari semua file dapat digunakan untuk membuat ulang database:
$ cat *.sql | psql <database>
Saya telah menemukan bahwa cara yang baik untuk melihat sekilas perbedaan antara dump adalah dengan menggunakan meld
alat di seluruh direktori:
$ meld old-dump/ new-dump/
Menyimpan dump dalam kontrol versi juga memberikan pandangan yang layak tentang perbedaannya. Berikut cara mengonfigurasi git untuk menggunakan warna dalam perbedaan:
# ~/.gitconfig
[color]
diff = true
[color "diff"]
frag = white blue bold
meta = white green bold
commit = white red bold
Catatan: Jika Anda telah membuat/menjatuhkan/mengganti nama tabel, ingatlah untuk menghapus semua .sql
file sebelum memproses dump baru.