2016-11-16 102 views
0

這是我目前所做的將數據庫從本地機器複製到遠程服務器的方法。忽略pg_dump中的表並恢復

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

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

這確實一個完美複製

如何修改此選項以忽略源和目標中的特定表名稱?

這對記錄網站訪問的表格很有用。我想保留現有的遠程訪問日誌,而忽略本地「訪問」日誌(這只是我本地訪問我自己的網站)。

+0

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

回答

3

使用-t開關,你可以選擇要包括哪些表:

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 

當您還原,它不會試圖恢復它沒有備份的東西,所以這部分應該在本地處理。