当出现警告时,pg_restore 的退出代码出现问题



命令:

bin/pg_dump -b -o -Fc -Z 0 -p 5333 -U user template1 -f db.dump
bin/pg_restore -c  -h localhost -p 5333 -U user -d template1 db.dump 

遵循的步骤:

  1. 向数据库添加新表并转储

  2. 删除新添加的表

  3. 尝试使用转储文件还原

  4. 还原已退出,代码为 1,但表仍成功还原。

pg_restore中的错误:
pg_restore:[存档程序 (db)] 无法执行查询:err-1:表 "test1" 不存在
命令是:DROP TABLE public.test1;
警告:还原时忽略错误:2

这是具有表添加/删除步骤的转储/还原功能的预期行为吗?

如果目标数据库的表仅与转储中的表部分重叠,则使用 pg_restore 可能会很痛苦。

使用 --clean 标志只能部分解决问题,但对于不存在的表,您仍可能遇到错误。

在我看来,最好的办法是删除目标数据库(或删除级联目标架构)并进行还原。

您可能想看一个类似的问题:pg_restore会覆盖现有表吗?

相关内容

  • 没有找到相关文章

最新更新