忽略pg_dump中的表并恢复

cod*_*321 1 postgresql

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

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

Restore remote database:
psql --single-transaction dbname -U postgres < dumpfile
Run Code Online (Sandbox Code Playgroud)

这是一个完美的复制.

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

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

Ham*_*one 6

使用该-t开关,您可以选择要包含哪些表:

pg_dump <your switches> -t my_schema.awesome* -f backup.bat postgres
Run Code Online (Sandbox Code Playgroud)

其中只包括那些表格.

同样,-T交换机将执行相反的操作 - 转储除指定的表之外的所有内容:

pg_dump <your switches> -T my_schema.lame* -f backup.bat postgres
Run Code Online (Sandbox Code Playgroud)

您也可以多次使用每个开关:

pg_dump <your switches> \
    -t my_schema.awesome* \
    -t my_schema.amazing* \
    -t my_schema.great -f backup.bat postgres
Run Code Online (Sandbox Code Playgroud)

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