Heroku で Postgres を使用しており、本番 DB から 1 つのテーブルをダンプし、それをステージング DB にダンプする必要があります。heroku ツール ベルトをインストールしましたが、単一の db テーブルをダンプしてステージング db にインポートする方法がわかりません。
質問する
10061 次
3 に答える
67
次のように、単一のデータ テーブルをダンプできます。
$ pg_dump --no-acl --no-owner -h [host ip].compute-1.amazonaws.com -U [user name] -t [table name] --data-only [database name] > table.dump
これで必要なすべての値を取得できます。
$ heroku pg:credentials:url [DATABASE] -a [app_name]
Connection info string:
"dbname=[database name] host=[host ip].compute-1.amazonaws.com port=5432 user=[user name] password=[password] sslmode=require"
Connection URL:
postgres://[username]:[password]@[host ip].compute-1.amazonaws.com:5432/[database name]
これにより、パスワードの入力が求められます。table.dump
それを入力すると、ローカルドライブにファイルを取得するために進む必要があります.
おそらく、ステージング時にテーブルを切り捨てたいと思うでしょう:
$ echo "truncate [table];" | heroku pg:psql [DATABASE] -a staging_app
そのファイルを使用psql
して、ステージング アプリの新しい呼び出し Connection URL:
の出力を使用して、そのテーブルだけを復元できます。pg:credentials
$ psql "[pasted postgres:// from pg:credentials:url of staging app]" < table.dump
SET
SET
...
...
...
...
$
于 2013-04-22T16:00:28.937 に答える
4
@catsbysの回答
ポートも追加する必要がありました
pg_dump --no-acl --no-owner -h [ホスト IP].compute-1.amazonaws.com -p [ポート] -U [ユーザー名] -t [テーブル名] --data-only [データベース名] ] > table.dump
于 2014-03-17T20:49:12.510 に答える