pg_restore会覆盖现有的表吗?

时间:2017-04-25 06:28:28

标签: postgresql psql postgresql-9.5 pg-dump pg-restore

假设我有两台主机服务器s1和s2。在这两个服务器中我都有一个名为n1的模式,现在我对s1的模式n1中的一些表进行了一些更改。我希望对服务器s2的模式n1进行相同的更改。我打算做的是使用pg_dump备份服务器s1的模式n1,并使用pg_restore在服务器s2中恢复。现在我的问题是,因为服务器s2中已经存在具有相同表集的相同模式n1。恢复过程会做什么?它会覆盖现有的表还是应该删除服务器s2的现有模式并使用服务器s1的转储来恢复它?

1 个答案:

答案 0 :(得分:23)

如果您使用--clean的{​​{1}}选项,旧表将在创建新表之前被删除。

如果您不使用pg_restore选项,则会收到表已存在的错误消息,但除非您使用--clean选项,否则pg_restore将继续处理。