这是我目前要将数据库从本地计算机复制到远程服务器。
Dump local database:
pg_dump dbname --clean -U postgres > dumpfile
Restore remote database:
psql --single-transaction dbname -U postgres < dumpfile
这是完美复制。
如何修改此项以忽略源和目标中的特定表名?
这对于记录网站访问的表非常有用。我想保留现有的远程访问日志,而忽略我当地的“访问”日志(这只是我在本地访问我自己的网站)。
答案 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
当你恢复时,它不会打算尝试恢复它没有备份的东西,所以这部分应该在本地处理。