Restaurer une base PostgreSQL

Publié le 19 mai 2013 par Menerve
Comment restaurer une base de données Postgresql sauvegardée via pg_dump?
En ligne de commande via psql:
psql -U user -d dbcible -f mydbdump.sql
Pour une archive TAR, via pg_restore que l'on décompresse d'abord:
gzip -d mydbdump.tar.gz

pg_restore -U user -d dbcible mydbdump.tar --format=t
Cela restaure la base de données dumpée (mydbdump.sql) dans la base de données dbcible de l'utilisateur user.
Attention, le role / utilisateur doit être le même référencé dans le dump et en cible. Sinon, les lignes suivantes poseront problème:
ALTER TABLE public.tablex OWNER TO user;
Aussi, la base de données doit-être vierge.
Les erreurs suivantes pourront être ignorées:
ERROR:  must be owner of extension plpgsql
ERROR:  must be owner of schema public
ERROR:  must be member of role "xxx"
WARNING:  no privileges could be revoked
WARNING:  no privileges were granted

Note: pour sauvegarder une base de données Postgresql via pg_dump, voir cet article: http://www.alternative.free.fr/blog/?2013/01/25/75-sauvegarde-automatique-base-de-donnees-et-site-web