pg_dump
crée par défaut les commandes sql nécessaires pour recréer les données. Pour les récupérer, il suffit d'invoquer psql
(pas pg_restore
) avec le fichier en entrée . pg_restore
ne doit être utilisé que pour le binaire (pas par défaut, et moins habituel) non recommandé ) du format pg_dump
. Lire l'article docs .
Mise à jour : Le pg_dump
les formats binaires ( -Fc
-Ft
) qui doivent être utilisés avec pg_restore
sont acceptables, et offrent une certaine flexibilité supplémentaire. Mais ils sont moins standards (non SQL), moins aptes à l'importation depuis certains outils (par exemple un frontend php) ou à la manipulation avec un éditeur de texte, et un peu moins portables vers d'autres versions et même d'autres bases de données. Pour les sauvegardes, je m'en tiendrais au format simple par défaut. Pour d'autres scénarios, l'option binaire + pg_restore peut être aussi ou plus appropriée.
Ce qu'il faut retenir, c'est que dans Postgresql, dans l'onglet scénario typique la sauvegarde se fait normalement par pg_dump (en clair) et la restauration avec le client de ligne de commande standard ( psql ).