PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 16/05/2019 14:23:34

caius
Membre

pg_restore bloqué avec extension plpgsql

Bonjour,

je rencontre un problème pour restaurer une base de données avec pgadmin4. J'utilise les seules options --clean et --single-transaction sur un fichier dump :

/usr/pgsql-10/bin/pg_restore --host "localhost" --port "5432" --username "postgres" --no-password --role "postgres" --dbname "applip" --clean --single-transaction --verbose "/var/lib/pgadmin/storage/script_modification/applip_2019-05-14_11-07-02.dump"

mais je rencontre tout le temps la même erreur :

pg_restore: dropping COMMENT EXTENSION plpgsql
pg_restore: dropping EXTENSION plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 1; 3079 13794 EXTENSION plpgsql
pg_restore: [archiver (db)] could not execute query: ERROR:  cannot drop extension plpgsql because other objects depend on it
DETAIL:  function schema.create_batiment(character varying,numeric,character varying,character varying,character varying,character varying) depends on language plpgsql
...

j'ai une instance postgres test sur laquelle j'arrive sans problème à restaurer mes bases mais là je ne comprends pas pourquoi l'extension plpgsql me bloque...
Que dois-je changer ?

merci d'avance

Hors ligne

#2 16/05/2019 16:02:24

gleu
Administrateur

Re : pg_restore bloqué avec extension plpgsql

Vous demandez à ce qu'il supprime les objets existants avant de les créer. Or, quand il doit supprimer le langage PL/pgsql, il s'aperçoit que ce dernier est utilisé par des procédures stockées. Il ne peut pas supprimer le langage sans supprimer les procédures, du coup la suppression est en erreur. Est-ce une ancienne base ? dans ce cas, il faudrait supprimer les procédures stockées ou utiliser une autre base, vierge cette fois.


Guillaume.

Hors ligne

Pied de page des forums