pg_restore - 忽略特定错误

时间:2017-05-22 14:38:56

标签: postgresql jenkins

我从一位对Postgres一无所知的同事那里获得了一个项目。我正在尝试将pg_restore集成到Jenkins管道作业中,并返回一个我被告知可以忽略的错误。但是,此错误显然会导致Jenkins作业失败,这是不理想的。

有没有办法减轻或扼杀这一个错误的输出,而不会停止记录任何其他(更严重的)错误?

我正在运行的命令(剥离了所有个人数据)是

PGPASSWORD="password" pg_restore -h path -U user -d database filename -F c -c

并返回此错误(但成功执行)

pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 8290; 0 0 COMMENT EXTENSION plpgsql 
pg_restore: [archiver (db)] could not execute query: ERROR:  must be owner of extension plpgsql
    Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';

同样,我的Postgres体验还不到零。是否有一种简单的方法可以忽略这一个错误,或者这只是我需要忍受的东西?

1 个答案:

答案 0 :(得分:0)

如果您在源数据库中以拥有该扩展名的用户身份运行pg_restore,则可以解决该问题的真实问题。

只是为了解决问题:使用旧式脚本步骤,添加#!/bin/sh -x作为第一行将阻止它在非零返回代码上中止(Jenkins通常使用-e运行shell选项)。用管道构建它值得一试,但我不确定它是否会以相同的方式工作。如果是,请注意脚本将在其他错误返回代码之后继续。