28

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

4

1 回答 1

63

如果您使用--clean选项pg_restore,旧表将在创建新表之前被删除。

如果您不使用该--clean选项,您将收到一条错误消息,表明该表已存在,但pg_restore除非您使用该--exit-on-error选项,否则将继续处理。

于 2017-04-25T07:13:49.827 回答