2016-11-16 8 views
0

これは私のローカルマシンからリモートサーバにデータベースをコピーするために現在行っている作業です。pg_dumpでテーブルを無視して復元する

Dump local database: 
pg_dump dbname --clean -U postgres > dumpfile 

Restore remote database: 
psql --single-transaction dbname -U postgres < dumpfile 

これは完璧な複製を行います。

ソースとデスティネーションの両方で特定のテーブル名を無視するには、これをどのように変更しますか?

これは、ウェブサイトへの訪問を記録するテーブルに役立ちます。ローカルの「訪問」ログ(私自身のウェブサイトをローカルに訪問している)を無視して、既存のリモート訪問ログを保持したい。 -tスイッチを使用して

+0

重複:http://stackoverflow.com/questions/7359827/creating-a-database-dump-for-specific-tables-and-entries-postgres – McNets

答えて

3

、あなたは含める内容のテーブルについて選択することができます:

pg_dump <your switches> -t my_schema.awesome* -f backup.bat postgres 

テーブルのみが含まれますどの。

同様に、-Tスイッチは反対のことを行います - あなたが指定したテーブル以外のすべてをダンプ:

pg_dump <your switches> -t my_schema.lame* -f backup.bat postgres 

あなたはそれぞれが同様に複数回を切り替え使用することができます。

pg_dump <your switches> \ 
    -t my_schema.awesome* \ 
    -t my_schema.amazing* \ 
    -t my_schema.great -f backup.bat postgres 

復元するときバックアップしなかったものを復元しようとするのではなく、その部分をややネイティブに処理する必要があります。

関連する問題