21

Heroku の Postgres アドオンを使用しており、Heroku Postgres アドオン ページから新しい運用データベースを作成しました。アプリの [リソース] ページを使用してアプリに直接追加しませんでした。

次に、このデータベースをアプリにアタッチして、heroku pgコマンドで認識されるようにします。

アプリのDATABASE_URL構成変数を設定してデータベースを指すように設定した後、データベースを使用できますが、 heroku pgコマンドはまだそれを認識しません。

追加情報: 以前のデータベースは共有で、新しいデータベースは運用です。

4

3 に答える 3

11

アプリに依存しないhttps://postgres.heroku.com/サイトを使用してデータベースを追加しましたか? それとも、Heroku コントロール パネルで postgresql データベースを作成しただけですか?

https://postgres.heroku.com/でデータベースを作成した場合、コマンドを使用してデータベースを表示することはできません。heroku pg:infoただし、データベースをアプリケーションに追加するためにできることは次のとおりです。

  1. https://postgres.heroku.com/にログインします。
  2. アプリケーションにアタッチするデータベースをクリックします。
  3. 「接続設定」の下で、右上の設定ボタンをクリックします。
  4. 次に、[URL] オプションをクリックします。
  5. データベースの URL をコピーします。これは、「postgres://blah:blah@ec2-23-23-122-88.compute-1.amazonaws.com:5432/omg」のようになります。
  6. アプリケーションのコマンド ラインで、次のコマンドを実行します。heroku config:set DATABASE_URL=postgres://blah:blah@ec2-23-23-122-88.compute-1.amazonaws.com:5432/omg

そこで行ったことは、データベースをDATABASE_URLアプリケーションの環境変数に割り当てることでした。これは、データベースをアプリケーションにローカルにプロビジョニングするときにデフォルトで使用される変数であるため、理論的には、この値を割り当てても問題なく動作するはずです。

于 2012-08-03T21:22:56.587 に答える
1

https://postgres.heroku.com/で作成したデータベースを、作業中の実際の heroku アプリに接続するには、pg バックアップ コマンドを使用できません。 Heroku アプリにデータベースをアタッチする Heroku の方法がサポートされました。

ただし、pg_dump を使用してデータベースのバックアップを作成し、pg_restore を使用して、アプリにアタッチされた新しいデータベースにデータを入力することができます。

pg_dump -i -h hostname -p 5432 -U username -F c -b -v -f "backup-filename" database_name

それが完了したら、新しいデータベースに次のものを入力できます。

pg_restore -i -h new_hostname -p 5432 -U new_username -d new_database_name -v "same_backup_filename"

「基本プラン」から「クレーン プラン」にアップグレードする場合でも、バックアップと復元を行う必要がありますが、データベースは既にアプリにアタッチされているため、heroku バックアップ コマンドを使用する利点があります。

于 2013-03-13T12:39:04.180 に答える