創建數據庫後,我通過腳本(通過正確的錯誤處理)使用備份文件在黑色數據庫上恢復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,否則整個過程將不會完成。
任何想法如何做到這一點?
我們實際上正在進行升級,只是在升級失敗的情況下才需要升級。 –