这是一个特定场景,我们将从 Postgres 10 提取的自定义转储恢复到 Postgres 14。我们收到以下错误:
错误:架构“公共”已经存在
我了解可以忽略 ERROR 并成功恢复所有后续对象。但是,由于我们是从 JAVA 程序调用 pg_Restore ,因此错误是返回 0 以外的退出代码并退出程序。当然,我们可以调整 JAVA 代码,以便通过解析此错误消息,我们可以隐藏退出代码。但我们仍然认为这不是一个理想的解决方案。还有其他 PG 方法可以避免此错误吗?
尝试的选项:
在还原之前删除并重新创建数据库。
使用“-n public”实际上可以避免错误。但这会在恢复时忽略大对象。
此处提出的解决方案 -答案
还没有运气!此错误或警告仅在还原旧版本转储时出现。
我们为什么不首先修复 pg_restore 源代码以在创建模式语句中使用“如果不存在”?