web-dev-qa-db-fra.com

PostgreSQL: restauration de la base de données à partir du vidage - erreur de syntaxe

J'essaie de restaurer une base de données PostgreSQL en exécutant le SQL créé par pg_dump, sur une base de données vide.

Je reçois cette erreur:

ERROR:  syntax error at or near "\"
LINE 5211: \.

les lignes 5210 et 5211 se lisent comme suit:

COPY auth_group (id, name) FROM stdin;
\.

Cela fonctionne très bien sur mon serveur Linux, où j'utilise cette commande:

psql -U nom_base <fichier_dump.sql

mais sous Windows, je ne sais pas comment faire de même, j'ai donc essayé d'exécuter le sql du fichier de vidage à partir de l'utilitaire de requête pgAdminIII.

Quelle est la méthode recommandée pour importer une base de données à partir d'un vidage sous Windows? Ou: comment résoudre ce problème de syntaxe?

Toute aide est très appréciée!

Martin

26
Hoff

Le -f filename argument on psql lira le fichier, vous n'avez donc pas besoin de le canaliser. psql devrait être inclus dans le répertoire bin de PostgreSQL dans windows. Ainsi:

psql -d dbname -U username -f dumpfile.sql

Vous devrez peut-être inclure un chemin complet vers l'exécutable psql s'il ne se trouve pas sur votre chemin, et éventuellement ajouter ".exe" à psql, il s'agit donc de "psql.exe".

Assurez-vous également que vous ne descendez pas dans les numéros de version, j'ai déjà rencontré des problèmes de syntaxe (par exemple, n'exportez pas une base de données 8.4 et essayez de la charger dans une base de données 8.1). Si tel est le cas, vous devrez peut-être modifier manuellement le fichier de vidage.

73
John Paulett

essayez avec psql -d nom_base -U utilisateur - f dumpfile.sql

28
Kai Huppmann