28

空のデータベースで pg_dump が作成した SQL を実行して、PostgreSQL データベースを復元しようとしています。

次のエラーが表示されます。

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

5210 行目と 5211 行目は次のとおりです。

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

次のコマンドを使用する Linux サーバーで正常に動作します。

psql -U データベース名 < dumpfile.sql

しかし、Windowsでは同じことを行う方法がわからないため、pgAdminIIIクエリユーティリティからダンプファイルのSQLを実行しようとしています。

Windowsでダンプからdbをインポートする推奨方法は何ですか? または:その構文の問題はどのように解決できますか?

どんな助けでも大歓迎です!

マーティン

4

2 に答える 2

76

psql-f filename引数はファイルに読み込まれるため、パイプする必要はありません。psql は、Windows の PostgreSQL の bin ディレクトリに含まれている必要があります。そのようです:

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

パス上にない場合は、psql 実行可能ファイルへのフル パスを含める必要がある場合があります。psql に ".exe" を追加すると、"psql.exe" になります。

また、バージョン番号が下がっていないことも確認してください。以前に構文の問題に遭遇したことがあります (たとえば、8.4 データベースをエクスポートして 8.1 データベースにロードしようとしないでください)。その場合は、ダンプ ファイルを手動で編集する必要があります。

于 2009-11-25T16:10:07.797 に答える
29

psql -d dbname -U user -f dumpfile.sqlで試してください

于 2009-11-25T16:12:02.413 に答える