PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgres pg_dump zrzuca bazę danych za każdym razem w innej kolejności

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 KOPII
  • 0001_<schema>.<table>.sql
    .
    .
    NNNN_<schema>.<table>.sql :dane dla każdej tabeli posortowane według pierwszego pola
  • 9999_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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak stworzyć użytkownika za pomocą PSQL

  2. Algorytm dopasowywania w SQL

  3. Połącz się ze zdalnym serwerem postgresql na amazon ec2

  4. Czy używanie tablic w bazie danych to zły projekt?

  5. Automatyczne zwiększanie częściowego klucza podstawowego za pomocą Entity Framework Core