2009-11-25 3 views
25

J'essaye 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.PostgreSQL: restauration de la base de données à partir du dump - erreur de syntaxe

Je reçois cette erreur:

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

lignes 5210 et 5211 lecture:

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

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

psql -U nombase < dumpfile.sql

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

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

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

Martin

Répondre

68

L'argument -f filename sur psql va lire dans le fichier, vous ne devez pas tuyau dans. Psql doit être inclus dans le répertoire bin de PostgreSQL dans les fenêtres. Comme si:

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

Vous pouvez inclure un chemin complet vers l'exécutable psql si elle est pas sur votre chemin, et ajouter possible « .exe » à psql, il est donc « 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 c'est le cas, vous devrez peut-être modifier manuellement le fichier de vidage.

+1

Cela a fonctionné pour moi lorsque vous essayez d'importer une décharge avec Navicat qui a été lancer toutes sortes d'erreurs de syntaxe. Cela a très bien fonctionné depuis le terminal d'OS X. –

27

essayer avec psql -d nom_bdd -U utilisateur -f dumpfile.sql

+0

merci kai, je vais vous donner un up-vote au moins ..! – Hoff

Questions connexes