Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
Hide categories

Categories

  • Heroku のアーキテクチャ
    • コンピューティング (dyno)
      • dyno の管理
      • dyno の概念
      • dyno の動作
      • dyno の参照資料
      • dyno のトラブルシューティング
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • 開発者ツール
    • コマンドライン
    • Heroku の VS Code 拡張機能
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Node.js アプリのトラブルシューティング
      • Heroku での Node.js の動作
      • Node.js の操作
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Ruby の操作
      • Heroku での Ruby の動作
      • Ruby アプリのトラブルシューティング
    • Python
      • Python の操作
      • Python でのバックグラウンドジョブ
      • Heroku での Python の動作
      • Django の使用
    • Java
      • Heroku での Java の動作
      • Java の操作
      • Maven の使用
      • Spring Boot の使用
      • Java アプリのトラブルシューティング
    • PHP
      • PHP の操作
      • Heroku での PHP の動作
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Heroku Postgres への移行
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Vector Database
    • Working with AI
    • Heroku Inference
      • AI Models
      • Inference Essentials
      • Heroku Inference Quick Start Guides
      • Inference API
    • Model Context Protocol
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • データベースとデータ管理
  • Heroku Postgres
  • Postgres の基礎
  • Heroku Postgres のプロビジョニング

Heroku Postgres のプロビジョニング

日本語 — Switch to English

最終更新日 2025年03月17日(月)

Table of Contents

  • プロビジョニングする前に
  • アドオンをプロビジョニングする
  • アプリケーションの環境設定
  • プライマリデータベースの指定
  • アプリケーション間での Heroku Postgres の共有
  • アドオンの削除
  • 次のステップ

プロビジョニングする前に

Heroku Postgres をプロビジョニングする前に、それがまだアプリに対してプロビジョニングされていないことを確認します。2023 年 5 月 15 日​より前にアカウントを作成した場合、またはアカウントの自動プロビジョニングの有効化​を Heroku サポートに依頼した場合、Heroku は特定のライブラリを含むアプリに Postgres を自動的にプロビジョニングします。

heroku addons​ コマンドを使用して、アプリがすでに Heroku Postgres をプロビジョニングしているかどうかを判定します。

$ heroku addons
Add-on                                               Plan         Price     State
───────────────────────────────────────────────────  ───────────  ────────  ───────
heroku-postgresql (postgresql-concave-52656)         essential-0  $5/month  created

アドオンをプロビジョニングする

アプリのアドオンのリストに heroku-postgresql​ がない場合、CLI コマンドを使用してプロビジョニングできます。

$ heroku addons:create heroku-postgresql:<PLAN_NAME> -a <APP_NAME>

たとえば、Essential-0​ プランデータベースをプロビジョニングするには、次のようにします。

$ heroku addons:create heroku-postgresql:essential-0 -a example-app
Creating heroku-postgresql:essential-0 on ⬢ example-app... ~$0.007/hour (max $5/month)
Database should be available soon
postgresql-concave-52656 is being created in the background. The app will restart when complete...
Use heroku addons:info postgresql-concave-52656 to check creation progress
Use heroku addons:docs heroku-postgresql to view documentation

バージョンを指定する

プロビジョニングコマンドに --version​ フラグを含めると、プロビジョニングする Postgres のバージョンを指定できます。

addons:create​ の例は Heroku CLI v9.0.0​ 以降の構文に従っています。v8.11.5 以前を使用している場合は、次のコマンドを使用してください。

$ heroku addons:create heroku-postgresql:​<PLAN_NAME>​ --version=15
$ heroku addons:create heroku-postgresql:<PLAN_NAME> -- --version=15

PostgreSQL バージョンのサポートの詳細を確認してください。

選択したプランに応じて、データベースは使用可能になるまでに最長 5 分かかることがあります。heroku pg:wait​コマンドでステータスを追跡できます。このコマンドは、データベースが使用できるようになるまでブロックします。

ログのブロック

アドオン作成時に、データベースに対して実行されるクエリのログ記録を防止するためにフラグを渡すことができます。このオプションをオンにすると、データベースのプロビジョニング後にオフにすることはできません。オンにした後でオフにするには、新しいデータベースに移行​する必要があります。

ログ内のクエリをブロックすると、アプリケーションをデバッグしたり、アプリケーションパフォーマンスをチューニングしたりするのに役立つ Heroku の機能が低下します。

 

addons:create​ の例は Heroku CLI v9.0.0​ 以降の構文に従っています。v8.11.5 以前を使用している場合は、次のコマンドを使用してください。

$ heroku addons:create heroku-postgresql:standard-0 -a example-app --block-logs
$ heroku addons:create heroku-postgresql:standard-0 -a example-app -- --block-logs

アプリケーションの環境設定

プロビジョニングプロセスの一部として、DATABASE_URL​ 環境設定がアプリの設定に追加されます。DATABASE_URL​には、アプリがデータベースにアクセスするために使用する URL が含まれています。アプリにすでに Heroku Postgres データベースがあり、別のものをプロビジョニングする場合は、この環境設定の名前が代わりに HEROKU_POSTGRESQL_<COLOR>_URL​ (HEROKU_POSTGRESQL_YELLOW_URL​ など) という形式になります。

heroku config​ コマンドでアプリの環境設定の名前および値を確認できます。

アプリの DATABASE_URL​ 環境設定の値は、いつでも変化する可能性があります。Heroku アプリの内部または外部のどちらでも、この値に依存しないでください。

この時点で、空の PostgreSQL がプロビジョニングされます。既存のデータソースからデータを入力するには、インポート手順​を参照するか、言語固有の手順​に従って、アプリケーションから接続してください。

プライマリデータベースの指定

DATABASE_URL​ 環境設定は、アプリのプライマリ Heroku Postgres データベースの URL を指定します。1 つのデータベースを持つアプリの場合は、その URL がこの環境設定に自動的に割り当てられます。

複数の Postgres データベースを持つアプリの場合は、heroku pg:promote​ でプライマリデータベースを設定します。一般的なユースケースには、リーダー/フォロワー高可用性設定​、またはデータベースアップグレードプロセス​の一部が含まれます。

アプリケーション間での Heroku Postgres の共有

heroku addons:attach​ コマンドを使用して、単一の Heroku Postgres データベースを複数のアプリ間で共有できます。--as​ フラグを使用してアドオンのエイリアスを指定することもできます。

$ heroku addons:attach my-originating-app::DATABASE --app example-app --as ATTACHED_DB
Attaching postgresql-addon-name to example-app... done
Setting ATTACHED_DB vars and restarting example-app... done, v11

デフォルトでは、アタッチされたデータベースの URL は、名前形式 HEROKU_POSTGRESQL_<COLOR>_URL​ で環境設定に割り当てられます。この例ではエイリアスが設定されていたため、環境設定の名前は ATTACHED_DB​ になります。

共有されるデータベースは、必ずしも共有されるいずれか特定のアプリのプライマリデータベースであるわけではありません。共有されたデータベースをプロモートするには、他のデータベースに使用した同じコマンド​を使用します。

別のアプリとの Heroku Postgres インスタンスの共有を停止するには、heroku addons:detach​ コマンドを使用します。

$ heroku addons:detach ATTACHED_DB --app example-app
Detaching ATTACHED_DB to postgresql-addon-name from example-app... done
Unsetting ATTACHED_DB config vars and restarting example-app... done, v11

アドオンの削除

アドオンは、Heroku Dashboard を使用して、または CLI を使用して削除できます。

データベースをデプロビジョニングし、復元する場合は、指定された継続的な保護ロールバック期間​内に復元できる可能性があります。この期間を過ぎると、データベースを復元できなくなる可能性が高くなります。サポートが必要な場合は、サポートチケットを開いてください​。

デプロビジョニングする前にデータのバックアップを作成することをお勧めします。PG Backups を​使用すると、データのスナップショットを作成し、バックアップをダウンロードして外部ストレージサービスに保存できます。デプロビジョニングする前にデータをエクスポート​することもできます。

Dashboard を使用して削除する

Heroku Dashboard から Postgres データベースを削除するには:

  1. Heroku Dashboard​ からアプリケーションに移動し、Resources (リソース) タブを選択します。
  2. 削除する Heroku Postgres アドオンを選択し、右側のドロップダウンを選択してから Delete Add-on (アドオンの削除) を選択します。
  3. Remove Add-on (アドオンを外す) ページで、確認としてアプリの名前を入力し、Remove add-on (アドオンを外す) を選択します。

CLI を使用して削除する

Heroku Postgres データベースを削除するには、次のコマンドを使用します。

$ heroku addons:destroy heroku-postgresql

同じ種類のデータベースが 2 つある場合は、その環境設定名を使用してアドオンを削除する必要があります。たとえば、HEROKU_POSTGRESQL_GRAY_URL​ データベースを削除するには、次のコマンドを実行します。

$ heroku addons:destroy HEROKU_POSTGRESQL_GRAY

削除されたデータベースが DATABASE_URL​ で使用されていたのと同じものであった場合は、その DATABASE_URL​ 環境設定がアプリで設定解除されます。

次のステップ

Postgres データベースに接続する方法についての詳細は、「Heroku Postgres への接続​」を参照してください。

関連カテゴリー

  • Postgres の基礎
適切な Heroku Postgres プランの選択 Heroku Postgres のバージョンのサポート

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices