PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Postgres pg_dump kết xuất cơ sở dữ liệu theo một thứ tự khác nhau mọi lúc

Đâ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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định dạng đầu ra thay thế cho psql

  2. 3 cách liệt kê tất cả các thủ tục được lưu trữ trong cơ sở dữ liệu PostgreSQL

  3. Cân bằng tải PostgreSQL bằng HAProxy &Keepalived

  4. Phát triển PostgreSQL cho Windows, Phần 1

  5. Hướng dẫn bất hợp pháp:4 khi chạy Django