8

Herokuで実行されているJavaアプリとpostgresqlデータベースがあります。アプリをうまくプッシュできますが、DBの内容はどうですか?データベースから完全なダンプをエクスポートしましたが、それをインポートする方法がわかりません。

グーグルで検索すると、必要なものすべてをプッシュするのではなく、限定されたrubygemであるdb:pushについて見つけることができます。シーケンス、bigintデータ型などがあります。またheroku pg:psql --app MYAPP < db_all.out、接続して停止するだけのインポートを使用して、アクセス許可にアクセスして苦情heroku pg:psql --app MYAPPを発行してみました。\i db_all.out

どうすればいいですか?

4

3 に答える 3

13

pg_restoreで指定された資格情報を使用して、ローカルマシンからコマンドを実行できますheroku pg:credentials HEROKU_POSTGRESQL_<COLOR>

于 2012-08-09T21:23:29.440 に答える
3

まだこの問題に遭遇している他の人を助けるために、私のために働くのはhgmnzの答えですが、いくつかの変更があります。

より正確には:

  1. ソースPostgreSQLデータベースからダンプを作成します
    $ PGPASSWORD=YOUR_PG_PASSWORD pg_dump -Fc --no-acl --no-owner -h localhost -U YOUR_PG_USER YOUR_DB_NAME > YOUR_DB_NAME.dump
    
  2. herokuアプリのHerokuPostgresクレデンシャルを取得します
    $ heroku pg:credentials:url -a YOUR_APP_NAME
    
  3. 上記のクレデンシャルを使用して、PostgreSQLダンプをHerokuにインポートしてみてください
    $ pg_restore --verbose --clean --no-acl --no-owner -h HOSTNAME -U USER -d DATABASE -p PORT PATH/TO/YOUR_DB_NAME.dump --password
    
  4. HerokuPostgresクレデンシャルから受け取ったパスワードを入力します
  5. その後、ダンプを正常にインポートする必要があります
于 2021-01-22T13:07:32.187 に答える
0

これは非常に単純で、私のために働いていました:

heroku pg:psql -a {YOUR_APP} -f {YOUR_DUMP_PATH}

これは、Herokuコマンド自体によって指定されたオプションを使用するため、標準の入力構文(OPの例のように)を使用するよりも優れた方法だと思います。

送信する前に、ダンプファイルに問題がないかどうかを確認することをお勧めします(私の場合はそうではありませんでした)。

于 2022-02-21T13:05:10.307 に答える