PostgreSQL: restauration de la base de données à partir d'une erreur de syntaxe de dump

j'essaie de restaurer une base de données PostgreSQL en exécutant le SQL que pg_dump a créé, 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 dbname < dumpfile.sql

mais sur Windows, Je ne sais pas comment faire la même chose, donc j'ai essayé d'exécuter le sql de dumpfile à partir de l'utilitaire de requête pgAdminIII.

Quelle est la méthode recommandée pour importer un db d'un dump sur Windows? Ou: comment résoudre ce problème de syntaxe?

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

Martin

25
demandé sur Hoff 2009-11-25 19:02:44

2 réponses

-f filename argument psql va lire dans le fichier, donc vous n'avez pas à Le Piper. psql doit être inclus dans le répertoire bin de PostgreSQL sous windows. Comme ceci:

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

vous devrez peut-être inclure un chemin complet vers l'exécutable psql s'il n'est pas sur votre chemin, et peut-être ajouter ".exe" à psql, de sorte qu'il est "psql.EXE."

assurez-vous également que vous n'allez pas vers le bas dans les numéros de version, j'ai couru dans les problèmes de syntaxe avant (E. G ne pas exporter une base de données 8.4 et essayez de le charger dans une base de données 8.1). Si oui, vous pourriez avoir à modifier manuellement le fichier de vidage.

71
répondu John Paulett 2011-10-29 08:05:13

essayez avec psql -d dbname -U utilisateur