How do I reliably determine whether pg_restore succeeded, when success sometimes results in an exit code of 1?
运行
1 2 3 4 5 6 | pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error FROM TOC entry 161; 1259 16549 TABLE example_table root pg_restore: [archiver (db)] could NOT EXECUTE query: ERROR: TABLE"example_table" does NOT exist Command was: DROP TABLE public.example_table; WARNING: errors ignored ON restore: 1 |
如消息所示,还原成功。有些错误,但江户十一〔一〕声称忽略了这些错误。我还能够手动查询数据库,以验证在还原之后,我希望在转储中的所有数据都存在于数据库中。
问题是上述命令已退出,状态为1,而不是0。当以编程方式执行数据库还原时(正如我在自动化此过程时打算做的那样),这是有问题的,因为我的脚本需要能够可靠地确定还原是否成功。
有没有办法让
请注意,我目前正在使用PostgreSQL 9.1。
事实证明,Postgres并不真正知道问题中提到的错误是相对无害的;这并不是忽略错误的原因。
最好的解决方案是首先采取措施防止错误发生。在这种情况下,您可能需要在运行