Heroku Postgres のプロビジョニング
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2023年05月12日(金)
Table of Contents
プロビジョニングする前に
Heroku Postgres をプロビジョニングする前に、それがまだアプリに対してプロビジョニングされていないことを確認します。Heroku では、特定のライブラリ (pg
Ruby gem など) を含むアプリに対して Postgres を自動的にプロビジョニングします。
heroku addons
コマンドを使用して、アプリがすでに Heroku Postgres をプロビジョニングしているかどうかを判定します。
$ heroku addons
Add-on Plan Price State
────────────────────────────────────────────────────────── ───── ─────── ───────
heroku-postgresql (postgresql-concave-52656) mini $5/month created
アドオンをプロビジョニングする
heroku-postgresql
に、アプリのアドオンリストが表示されていない場合は、次の CLI コマンドでプロビジョニングできます。
$ heroku addons:create heroku-postgresql:<PLAN_NAME>
たとえば、Mini プランデータベースをプロビジョニングするには、次のように実行します。
$ heroku addons:create heroku-postgresql:mini
Creating heroku-postgresql:mini on ⬢ example-app... $5/month
Database has been created and is available
! This database is empty. If upgrading, you can transfer
! data from another database with pg:copy
Created postgresql-concave-52656 as DATABASE_URL
プロビジョニングコマンドに --version
フラグを含めることで、プロビジョニングする Postgres のバージョンを指定できます。
$ heroku addons:create heroku-postgresql:<PLAN_NAME> --version=12
PostgreSQL バージョンのサポートの詳細を確認してください。
選択したプランに応じて、データベースは使用可能になるまでに最長 5 分かかることがあります。heroku pg:wait
コマンドでステータスを追跡できます。このコマンドは、データベースが使用できるようになるまでブロックします。
heroku_ext
スキーマの外部に拡張機能をインストールできるが、--allow-extensions-on-public-schema
フラグを設定するデータベースをプロビジョニングできます。
アプリケーションの環境設定
プロビジョニングプロセスの一部として、DATABASE_URL
環境設定がアプリの設定に追加されます。DATABASE_URL
には、アプリがデータベースにアクセスために使用する URL が含まれています。アプリにすでに Heroku Postgres データベースがあり、別のものをプロビジョニングしている場合は、この環境設定の名前が代わりに HEROKU_POSTGRESQL_<COLOR>_URL
(HEROKU_POSTGRESQL_YELLOW_URL
など) という形式になります。
heroku config
コマンドで、アプリの環境設定の名前および値を確認できます。
アプリの DATABASE_URL
環境設定の値は、いつでも変化する可能性があります。
Heroku アプリの内部または外部のどちらでも、この値に依存しないでください。
この時点で、空の PostgreSQL がプロビジョニングされます。既存のデータソースからデータを入力するには、インポート手順を参照するか、この記事の言語固有の手順に従って、アプリケーションから接続してください。