创建数据库后,我通过脚本(通过正确的错误处理)使用备份文件在黑色数据库上恢复postgresql 8.4上的数据库。如果发生任何错误,脚本将中止整个过程并将过程标记为失败。在数据库恢复以下生成错误:如何解决Postgresql 8.4错误“语言”plpgsql“已经存在”?
pg_restore: connecting to database for restore
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 302; 2612 16386 PROCEDURAL LANGUAGE plpgsql postgres
pg_restore: [archiver (db)] could not execute query: ERROR: language "plpgsql" already exists
Command was:
CREATE PROCEDURAL LANGUAGE plpgsql;
pg_restore: setting owner and privileges for SCHEMA public
pg_restore: setting owner and privileges for COMMENT SCHEMA public
pg_restore: setting owner and privileges for ACL public
pg_restore: setting owner and privileges for PROCEDURAL LANGUAGE plpgsql
WARNING: errors ignored on restore: 1
Exit code : 1
我知道,这个错误应该在PostgreSQL的8.x中被忽略,但因为我是通过脚本执行此,需要此需要解决的问题,即PostgreSQL的退出代码应该是0,否则整个过程将不会完成。
任何想法如何做到这一点?
我们实际上正在进行升级,只是在升级失败的情况下才需要升级。 –