4

PostgreSQLデータベースからバックアップを作成しようとしていますが、次のエラーが発生します:pg_dump:一致するスキーマが見つかりませんでした

rootとしてログインし、コマンドを実行しています

pg_dump -f db.dump --format = plain --schema = examples_schema --username = userx --host = localhost databasename

  1. userxを使用してpsqlにログインし、\ dtを試しました。これにより、existing_schemaという名前のスキーマが公開されているという情報が得られました。
  2. \ lをチェックして、databasenameがデータベース名であることを確認しました。
  3. パスワードが正しいです。そうでない場合、psqlにアクセスできませんでした。
  4. ローカルホストは正しく、実行中のプロセスからチェックされます。サーバーのIPアドレスも試しましたが、この場合、pg_adminはホストアドレスに関するエラーを出しました。

\ dlの出力:

 
                  関係のリスト

スキーマ| 名前| タイプ| オーナー
-------- + ------------------------------------- + --- ---- + -------
 パブリック| 既存のスキーマ| テーブル| userx
4

5 に答える 5

12

ここで説明したように、バックスラッシュと二重引用符で試すことができます

sudo -u postgres pg_dump -v Database_Name -t "\"Table_Name\""
于 2015-08-24T05:35:39.297 に答える
3

スキーマの名前はpublicです。

existing_schemaスキーマpublic内のテーブルの名前です。

pg_dumpコマンドラインから何をしたいかが明確ではありません。

スキーマからすべてのテーブルをエクスポートする場合は、以下を指定する必要があります。 public

--schema = public

テーブルのみをエクスポートする場合existing_schemaは、以下を指定する必要があります。

--table =existing_schema
于 2012-09-26T10:55:14.153 に答える
3

将来のグーグルのために、私の場合、私のスキーマにはドット( "my.schema")があり、これに対処する適切な方法は、エスケープすることです。

pg_dump -U postgres -d mydatabase --schema \"my.schema\"
于 2019-02-07T11:52:06.163 に答える
0
      \dn list out all the schema in the database 

スキーマのみをダンプする場合は、

参照

于 2012-09-26T11:09:05.140 に答える
0

私の場合、スキーマ名は大文字で、何を試しても(-n MYSCHEMA、、)、データベースでスキーマの名前を「myschema」に変更するまで機能しませんでした。次に、、、、およびのすべてをダンプできます。-n "MYSCHEMA"-n "\"MYSCHEMA\""-n MYSCHEMA-n "MYSCHEMA"-n "\"MYSCHEMA\""

pg_dumpは内部的に小文字を使用しているようです。つまり、コマンドラインで指定されたスキーマ名を引用していません。

ただし、それを使用してpg_dumpを呼び出す-n """MYSCHEMA"""と機能します。

ただし、テーブル名を追加すると、オプション-nが機能しなくなりました。スキーマとテーブル名に大文字が含まれている場合、私はこれを使用しました:

pg_dump -f file.txt -t \"MySchema\".\"MyTable\"

于 2021-01-27T12:03:27.307 に答える