sql >> データベース >  >> RDS >> PostgreSQL

Postgres pg_dumpは、毎回異なる順序でデータベースをダンプします

    pg_dumpを前処理するための便利なスクリプトを次に示します。 差分とバージョン管理での保存により適した出力にする:

    https://github.com/akaihola/pgtricks

    pg_dump_splitsort.py ダンプを次のファイルに分割します:

    • 0000_prologue.sql :最初のコピーまでのすべて
    • 0001_<schema>.<table>.sql


      NNNN_<schema>.<table>.sql :各テーブルのデータ最初のフィールドで並べ替え
    • 9999_epilogue.sql :最後のコピー以降のすべて

    テーブルデータのファイルには番号が付けられているため、すべてのファイルの単純な並べ替えられた連結を使用して、データベースを再作成できます。

    $ cat *.sql | psql <database>
    

    ダンプ間の違いを簡単に確認する良い方法は、meldを使用することです。 ディレクトリ全体のツール:

    $ meld old-dump/ new-dump/
    

    ダンプをバージョン管理に保存すると、違いについて適切なビューが得られます。差分で色を使用するようにgitを構成する方法は次のとおりです。

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

    注: テーブルを作成/削除/名前変更した場合は、すべての.sqlを削除することを忘れないでください。 新しいダンプを後処理する前にファイルを作成します。



    1. PostgreSQL論理レプリケーションの落とし穴

    2. MySQLのINDEX、PRIMARY、UNIQUE、FULLTEXTの違いは?

    3. postgresで指数移動平均を計算する方法は?

    4. MySQLをMariaDB10にアップグレードします(パート1 – MariaDB 5.5をインストールします)