Postgresql 存在警告时pg_restore的退出代码出现问题

Postgresql 存在警告时pg_restore的退出代码出现问题,postgresql,pg-restore,Postgresql,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,但仍成功还原表 pg_还原中出错: pg_restore:[archiver(db)]无法执行查询:err-1:表“te

命令:

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,但仍成功还原表

  • pg_还原中出错:
    pg_restore:[archiver(db)]无法执行查询:err-1:表“test1”不存在
    命令为:DROP TABLE public.test1
    警告:还原时忽略错误:2


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

    如果目标数据库的表仅与转储中的表部分重叠,则使用
    pg_restore
    可能会让人头疼

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

    在我看来,最好的办法是删除目标数据库(或删除目标模式)并进行恢复

    您可能想看一个类似的问题:

    尝试从
    pg\u restore
    中删除
    -c
    -clean
    )选项。如果表不存在,则由
    -c
    生成的尝试的
    删除表将导致错误。