web-dev-qa-db-ja.com

postgresql- .dumpファイルの復元

私はpsqlの新人です。サーバーのdata.dumpファイルから取得しました。ローカルに復元する必要があります。私はこれらのコマンドを試しました。

i)psql -U postgres dbname -f servicedb.dump

Error:
      psql: warning: extra command-line argument "-f" ignored
      psql: warning: extra command-line argument "servicedb.dump" ignored

ii)psql -U postgres dbname <servicedb.dump

 Error:
              ^
 ERROR:  syntaxe error at or near "☺"
 LINE 1: ☺☺

この「.dump」ファイルとは何ですか?それを復元する方法は?

31
shahul

サーバー(Heroku)から.dumpファイルを取得しました。クラウスが言ったように、pg_restoreはローカルで復元できる唯一の方法です。

私の端末に書いたのは:

pg_restore -c -d [database_name] [dumpfile_name].dump

Pg_restoreのKlausリンクに表示されるオプションがたくさんあります:)

47
marrossa

psql -f filenamed.dmp db_name

正常に動作します

19
Zydoon

Postgres 9.2の場合

pg_restore --verbose --clean --no-acl --no-owner -h localhost -U [user] -d [db] [filename].dump
15
Serge Seletskyy

pg_restore コマンドをご覧ください。

10

私はそれがWindows環境でトリッキーだとわかりました。

テキスト形式のダンプの場合、pg_restoreは機能しません。その場合、psqlを使用する必要があります。

psql -U username -f database.dump databasename

ユーザー名のパスワードを求めるプロンプトが表示され、復元プロセスが開始されます。

0
shakil080

pg_restoreは一目瞭然ではありません。これは、新しいデータベースを作成し、AWSで実行されているリモートPostgresインスタンス上のダンプファイルをそれに復元するために使用したコマンドです。接続が正しい場合、pg_restoreはすぐにパスワードの入力を要求します)

pg_restore -h mypostgresdb.eu-west-1.rds.amazonaws.com -U adminuser --verbose -C -d existingdatabase mydbdump.dm

スイッチは次のとおりです。

  • -h-awsのホスト名
  • -U-ユーザー名、これはデータベースを作成する権限を持つ管理ユーザーである必要があります
  • --verbose-画面に詳細出力を取得します
  • -C-ダンプファイルから新しいデータベースを作成することを意味します(ダンプしたdbが呼び出されたものは何でも名前が付けられます)
  • -d-紛らわしいことに、これは既存のデータベースの名前である必要があります。基本的にpg_restoreは、既存のDBに接続して、必要なスクリプトを実行して新しいデータベースを作成できるようにする必要があります。
  • mydbdump.dmpこれは、復元しようとしているダンプファイルの場所です。
0
Iain Hunter

psqlはプレーンテキストダンプ用で、pg_restoreを使用します。

0
upteryx