GNU/Linux >> Linux の 問題 >  >> Linux

リモート Linux VM で SQL ファイルを pg_restore できない

「pg_restore」は、「pg_dump」によって生成されたファイルを復元するためのものです。

マニュアルページから

<ブロック引用>

pg_restore は、pg_dump(1) によって非プレーンテキスト形式のいずれかで作成されたアーカイブから PostgreSQL データベースを復元するためのユーティリティです。

https://www.postgresql.org/docs/9.2/static/app-pgrestore.html

ファイルが pg_dump によって生成された場合、少なくともどのデータベースにダンプするかを指定する必要があります:

pg_restore -d my_new_database temp.sql

さまざまなフレーバーでの pg_restore に関する私自身の経験から、ダンプ ファイルが「ネイティブ」形式であっても、形式を検出することがマンページに示されているにもかかわらず、何度もダンプ ファイルの形式を指定する必要があることがわかります。

pg_restore -d my_new_database -Fc temp.dump

これは推測にすぎませんが、データベースを指定せずにテーブルが実際に復元された場合、デフォルトのデータベースにダンプされたと考えています。これは、「postgres」データベースのテーブルを一覧表示することで確認できます (存在しないはずです)。

postgres=#\c postgres
You are now connected to database "postgres" as user "postgres".
postgres=#\dt
No relations found.

テーブルがデフォルトのデータベースに復元された場合、リストに表示されます。

プレーン テキストの SQL ファイルは別の方法で処理する必要があり、通常は psql を使用して SQL コマンドを介して実行されます。

psql -d my_database < temp.sql

次のようなデータベース バックアップを生成したとします。

pg_dump -a --inserts databasename > exportfilename.sql

次のようにファイルを復元してみてください:

psql databasename -f exportfilename.sql

Postgre pg_restore 上記のように、 dump でのみ使用することを意図しています ファイル、そのように復元することはできません。 postgres.org の公式 Web サイトでこの回答を確認してください

基本的に、あなたはしません pg_restore を使用 sql で ファイル --->https://www.postgresql.org/message-id/AANLkTi%3DAqmWrUR4f8%2BEfCHZP%2BQrL1%3DunRLZp_jX7SoqF%40mail.gmail.com


Linux
  1. Linux –すべてがファイルですか?

  2. Linux のサンプル /etc/services ファイル

  3. LinuxシェルからのSQLクエリを含むCSVファイルの読み取り

  1. Linuxでファイルを移動する方法

  2. Linuxファイルのアクセス許可について

  3. ローカル エディターを使用したリモート編集 (Linux)

  1. Linuxテールコマンド

  2. Linuxタッチコマンド

  3. LinuxでのCatコマンド