Đây là một tập lệnh hữu ích để xử lý trước pg_dump
đầu ra để phù hợp hơn với việc khác biệt và lưu trữ trong kiểm soát phiên bản:
https://github.com/akaihola/pgtricks
pg_dump_splitsort.py
chia kết xuất thành các tệp sau:
-
0000_prologue.sql
:mọi thứ cho đến BẢN SAO đầu tiên -
0001_<schema>.<table>.sql
.
.
NNNN_<schema>.<table>.sql
:dữ liệu cho mỗi bảng được sắp xếp theo trường đầu tiên -
9999_epilogue.sql
:mọi thứ sau SAO CHÉP cuối cùng
Các tệp cho dữ liệu bảng được đánh số để có thể sử dụng cách ghép nối được sắp xếp đơn giản của tất cả các tệp để tạo lại cơ sở dữ liệu:
$ cat *.sql | psql <database>
Tôi nhận thấy rằng một cách tốt để xem nhanh sự khác biệt giữa các kết xuất là sử dụng meld
công cụ trên toàn bộ thư mục:
$ meld old-dump/ new-dump/
Lưu trữ kết xuất trong kiểm soát phiên bản cũng cung cấp một cái nhìn tốt về sự khác biệt. Dưới đây là cách định cấu hình git để sử dụng màu trong diffs:
# ~/.gitconfig
[color]
diff = true
[color "diff"]
frag = white blue bold
meta = white green bold
commit = white red bold
Lưu ý: Nếu bạn đã tạo / bỏ / đổi tên bảng, hãy nhớ xóa tất cả .sql
trước khi xử lý hậu kết xuất mới.