跑步时 pg_restore --clean --dbname=my_database backup_file.sql
要将数据库转储还原到空数据库,还原会成功,但会显示以下警告消息:
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
如消息所示,恢复成功。有错误,但是 pg_restore
声称忽略了他们。我还能够手动查询数据库,以验证恢复后我预期在转储中的所有数据是否都存在于数据库中。
问题是上面的命令退出状态为1,而不是0.当以编程方式执行数据库恢复时(正如我打算在自动执行此过程时那样),这是有问题的,因为我的脚本需要能够可靠地确定是否恢复成功与否。
有没有办法 pg_restore
确定退出状态时忽略警告?或者是否有一些替代方法 pg_restore
我可以使用我可以获得更准确的成功/失败信息吗?如何还原数据库并可靠地以编程方式确定还原是否成功?
请注意,我目前正在使用PostgreSQL 9.1。