将pg_restore覆盖现有表



说我有两个主机服务器S1和S2。在这两个服务器中,我都有一个名为N1的架构,现在我已经对S1模式N1中的一些表进行了一些更改。我希望对服务器S2的架构N1进行相同的更改。我打算这样做的是使用PG_DUMP备份服务器S1的架构N1,并使用PG_Restore在服务器S2中还原。现在我的问题是,因为服务器S2中已经有相同的架构N1,并具有相同的表格。还原过程将做什么?它会覆盖现有表,还是我应该删除服务器S2的现有架构并使用服务器S1的转储还原它?

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

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

如果您的目标是"合并"数据库中的现有数据和转储中的数据,如果您

  • 使用选项--inserts --on-conflict-do-nothing选项创建转储

  • 忽略您从CREATE TABLE语句获得的错误

  • 在所有表上都有一个主键或唯一约束(INSERT ... ON CONFLICT TO NOTHING是否需要工作(

相关内容

  • 没有找到相关文章

最新更新