web-dev-qa-db-ja.com

PostgreSQL:ダンプからのデータベースの復元-構文エラー

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

私はこのエラーを受け取ります:

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

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

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

Linuxサーバーでは問題なく動作しますが、このコマンドを使用します。

psql -U dbname <dumpfile.sql

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

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

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

マーティン

26
Hoff

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

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

パス上にない場合は、psql実行可能ファイルへのフルパスを含める必要があります。また、psqlに「.exe」を追加して、「psql.exe」にすることもできます。

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

73
John Paulett

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

28
Kai Huppmann