sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres pg_dump dumper databasen i en anden rækkefølge hver gang

Her er et praktisk script til forbehandling af pg_dump output for at gøre det mere egnet til at differentiere og gemme i versionskontrol:

https://github.com/akaihola/pgtricks

pg_dump_splitsort.py opdeler dumpet i følgende filer:

  • 0000_prologue.sql :alt op til den første KOPI
  • 0001_<schema>.<table>.sql
    .
    .
    NNNN_<schema>.<table>.sql :data for hver tabel sorteret efter det første felt
  • 9999_epilogue.sql :alt efter sidste KOPI

Filerne til tabeldata er nummererede, så en simpel sorteret sammenkædning af alle filer kan bruges til at genskabe databasen:

$ cat *.sql | psql <database>

Jeg har fundet ud af, at en god måde at tage et hurtigt kig på forskelle mellem lossepladser på er at bruge meld værktøj på hele mappen:

$ meld old-dump/ new-dump/

Lagring af dumpet i versionskontrol giver også et anstændigt overblik over forskellene. Sådan konfigurerer du git til at bruge farve i diffs:

# ~/.gitconfig
[color]
        diff = true
[color "diff"]
        frag = white blue bold
        meta = white green bold
        commit = white red bold

Bemærk: Hvis du har oprettet/slet/omdøbt tabeller, så husk at slette alle .sql filer før efterbehandling af det nye dump.



  1. Introduktion til SQL-gruppering og sammenlægning

  2. Arbejde med SQL-markører

  3. Let til Oracle

  4. Udvidede arrangementer for SSAS