说我有两个主机服务器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
是否需要工作(