我从一位对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体验还不到零。是否有一种简单的方法可以忽略这一个错误,或者这只是我需要忍受的东西?
答案 0 :(得分:0)
如果您在源数据库中以拥有该扩展名的用户身份运行pg_restore
,则可以解决该问题的真实问题。
只是为了解决问题:使用旧式脚本步骤,添加#!/bin/sh -x
作为第一行将阻止它在非零返回代码上中止(Jenkins通常使用-e
运行shell选项)。用管道构建它值得一试,但我不确定它是否会以相同的方式工作。如果是,请注意脚本将在其他错误返回代码之后继续。