忽略pg_dump中的表并恢复

时间:2016-11-16 21:09:20

标签: postgresql

这是我目前要将数据库从本地计算机复制到远程服务器。

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

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

这是完美复制

如何修改此项以忽略源和目标中的特定表名?

这对于记录网站访问的表非常有用。我想保留现有的远程访问日志,而忽略我当地的“访问”日志(这只是我在本地访问我自己的网站)。

1 个答案:

答案 0 :(得分:6)

使用-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

当你恢复时,它不会打算尝试恢复它没有备份的东西,所以这部分应该在本地处理。