Skip Navigation
Show nav
Heroku Dev Center Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
Heroku Dev Center Dev Center
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • Documentation
  • 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 in or Sign up
View categories

Categories

  • Heroku Architecture
    • Compute (Dynos)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
    • Buildpacks
  • Developer Tools
    • AI Tools
    • Command Line
    • Heroku VS Code Extension
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery & Integration (Heroku Flow)
    • Continuous Integration
  • Language Support
    • Node.js
      • Node.js Behavior in Heroku
      • Working with Node.js
      • Troubleshooting Node.js Apps
    • Ruby
      • Rails Support
        • Working with Rails
      • Working with Bundler
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Background Jobs in Python
      • Python Behavior in Heroku
      • Working with Django
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Working with Maven
      • Working with Spring Boot
      • Troubleshooting Java Apps
    • PHP
      • Working with PHP
      • PHP Behavior in Heroku
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
      • Migrating to Heroku Postgres
      • Heroku Postgres Advanced (Limited GA)
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Inference Essentials
    • Inference API
    • Inference Quick Start Guides
    • AI Models
    • Tool Use
    • AI Integrations
    • Vector Database
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
      • Single Sign-on (SSO)
    • Private Spaces
      • Infrastructure Networking
    • Compliance
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Teams
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
    • Heroku AppLink
      • Working with Heroku AppLink
      • Heroku AppLink Reference
      • Getting Started with Heroku AppLink
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Other Salesforce Integrations
  • Databases & Data Management
  • Heroku Postgres
  • Heroku Postgres Advanced (Limited GA)
  • Provisioning Heroku Postgres Advanced (Limited GA)

Provisioning Heroku Postgres Advanced (Limited GA)

Table of Contents [expand]

  • Heroku Postgres Advanced Plan Levels
  • Provision with Interactive Prompts
  • Provision with Flags
  • View Your Database Details
  • Customizable Features
  • Designating a Primary Database
  • Sharing Between Applications
  • Modifying a Database and Instance Pools
  • Destroy the Database
  • Additional Reading

Last updated May 18, 2026

Heroku Postgres Advanced is in limited general availability. To start creating and using Advanced databases, open a ticket with Heroku Support to request access. Subscribe to our changelog to stay informed of when Heroku Postgres Advanced is generally available.

Heroku Postgres Advanced databases offer default plan levels that you can customize. You can provision an Advanced database through interactive CLI prompts or through the command flags. This article explains how to provision an Advanced database, the customizable features, and removing a database.

This article covers provisioning Heroku Postgres Advanced-tier databases. To provision Postgres databases on a different tier, see Provisioning Heroku Postgres.

Heroku Postgres Advanced Plan Levels

To see details on the different Advanced plan levels, run data:pg:levels, see Choosing the Right Heroku Postgres Plan, or the Elements Marketplace.

$ heroku data:pg:levels
=== Available levels for Heroku Postgres Advanced databases

Name            vCPU Memory (GB) Max Connections
─────────────── ──── ─────────── ───────────────
4G-Performance  2    4           400
8G-Performance  2    8           800
16G-Performance 2    16          1600
32G-Performance 4    32          3200
...

Provision with Interactive Prompts

Your database can take up to 30 minutes to become available.

The interactive CLI walks you through creating a Postgres Advanced database. To provision a database, run the data:pg:create command and follow the prompts:

  1. Select Configure Leader Pool and select the plan level for your database cluster.

    $ heroku data:pg:create -a example-app
    Create a Heroku Postgres Advanced database
    Press Ctrl+C to cancel
    
    → Configure Leader Pool
       Configure Follower Pool(s)
    
    ? Select a Leader Pool Level: (Use arrow keys)
    ❯ 4G-Performance    2 vCPU     4 GB MEM  starting at ~$0.208/hour ($150/month)
      8G-Performance    2 vCPU     8 GB MEM  starting at ~$0.417/hour ($300/month)
      16G-Performance   2 vCPU    16 GB MEM  starting at ~$0.694/hour ($500/month)
      32G-Performance   4 vCPU    32 GB MEM  starting at ~$1.250/hour ($900/month)
    
  2. Enable or disable high availability on your leader instance pool.

    The leader pool has high availability enabled and includes a standby instance for redundancy.
    If you disable high availability, you remove the standby and you won't have redundancy on your database.
    
    ? Do you want to keep the high availability standby instance? (Use arrow keys)
    ❯ Keep high availability (HA)
      Remove high availability -$0.208/hour ($150/month)
      ──────────────
      Go back
    
  3. Review your configuration and select Confirm.

    ✓ Configure Leader Pool ~$0.417/hour ($300/month)
      4G-Performance 2 vCPU 4 GB MEM ~$0.208/hour ($150/month)
      Standby (High Availability) ~$0.208/hour ($150/month)
    
    ? Confirm provisioning? (Use arrow keys)
    > Confirm
      Go back
    
    Creating a 4G-Performance database on ⬢ example-app... done
    Database should be available soon
    postgresql-rugged-24211 is being created in the background. The app will restart when complete...
    Use heroku data:pg:info postgresql-rugged-24211 -a example-app to check creation progress.
    
  4. Optionally, you can create follower instance pools for your database or exit the create command. You can also add follower instance pools later.

    You can configure a follower pool while the leader pool is being configured. (Use arrow keys)
    > Configure a follower pool
      Exit
    
    ? Select a Follower Pool Level: (Use arrow keys)
    ❯ 4G-Performance    2 vCPU     4 GB MEM  starting at ~$0.208/hour ($150/month)
      8G-Performance    2 vCPU     8 GB MEM  starting at ~$0.417/hour ($300/month)
      16G-Performance   2 vCPU    16 GB MEM  starting at ~$0.694/hour ($500/month)
      32G-Performance   4 vCPU    32 GB MEM  starting at ~$1.250/hour ($900/month)
    ...
    
  5. Select the number of instances in your follower instance pool and give your instance pool a name.

    A cluster can have up to 13 follower instances. Two or more instances in a pool enables high availability for redundancy.
    Adding more instances distributes the load in the follower pool.
    
    ? Select the number of instances for this pool: (Use arrow keys)
      1 instance
      2 instances
    ❯ 3 instances
    ...
    
    ? Do you want to name this follower pool? (Use arrow keys)
    > Yes
      No, assign a random name
    
    ? Enter a unique pool name (3-32 lowercase letters and numbers, no spaces):
    follower-pool
    
  6. Review your configuration and select Confirm.

    ✓ Configure Follower Pool ~$0.625/hour ($450/month)
      follower-pool
      4G-Advanced
      3 instances (High Availability)
    
    ?  Confirm provisioning? (Use arrow keys)
    > Confirm
      Go back
    
    Configuring follower pool... done
    Success: we're provisioning follower-pool follower pool on postgresql-rugged-24211.
    Run heroku data:pg:info postgresql-rugged-24211 -a example-app to check creation progress.
    
    ? Configure another follower pool? (y/N)
    

Provision with Flags

You can also provision a database with customizable options through the command flags:

Flag Description
--level Set the compute scale level for the instance
--followers Provision one follower instance pool with a specified number of instances
--[no]-high-availability Enable or disable high availability on the leader instance pool
--network Set the database to be in a private or shield network
--version Set the Postgres version for the database
--as Name the database attachment

This example creates an Advanced database in a Private Space with a 4G-Performance leader instance and a standby instance for high availability, and one follower instance pool with two 4G-Performance instances:

$ heroku data:pg:create --level 4G-Performance --followers=2 --high-availability --network private -a example-app
Creating a 4G-Performance database on ⬢ example-app... done
Database should be available soon
postgresql-clear-54321 is being created in the background. The app will restart when complete...
Run heroku data:pg:info postgresql-clear-54321 -a example-app to check creation progress.
Success: we're provisioning thoughtful-pool-50369 follower pool on postgresql-clear-54321.
Run heroku data:pg:info postgresql-clear-54321 -a bookish-iri to check creation progress.

Your database can take up to 30 minutes to become available.

View Your Database Details

After provisioning or creating an attachment, you can see the details about the database via the CLI or the dashboard.

Via the CLI

To see details about a database with data:pg:info, run the command:

$ heroku data:pg:info HEROKU_POSTGRESQL_COBALT
=== ⛁ postgresql-rugged-24211 on ⬢ example-app

Plan:       Advanced
Status:     Available
Data Size:  1.10 GB / 128.00 TB
Tables:     10 / 4000 (In compliance)
PG Version: 17.9
Rollback:   earliest from 2026-05-18 00:00 UTC
Region:     us
Created:    2026-05-18 00:00 UTC
Quotas:
  Storage:  1.10 GB (No quotas set)

=== Leader pool (attached as DATABASE)

✓ Available
Connections: 10 / 400 used
2 instances of 4G-Performance (HA):
leader.i3r507gt6dbscn: up
standby.i7fquhvs4efu74: up

=== Follower pool analytics (attached as DATABASE_ANALYTICS)

✓ Available
Connections: 50 / 800 used
2 instances of 4G-Performance (HA):
follower.ic7mb4lq0rkurk: up
follower.i7q78mp2fg4v15: up

Via the Dashboard

To see details about a database from the dashboard, navigate to your database from the Heroku Dashboard. The dashboard provides the following features. We’ll update this table as we add features to the dashboard. You can subscribe to our changelog to stay informed.

Available on the Dashboard To Be Added on the Dashboard
View cluster information including leader instance pool and follower instance pools Provision Advanced databases
View database instance pool attachments information Scale instance pools
View storage and table utilization
View some database metrics
View database credentials

Database and Instance Pool Statuses

Status Database Description Instance Pool Description
Available Database is available Instance pool is available
Unavailable Database is unavailable Instance pool is unavailable
Provisioning Database is provisioning Instance pool is provisioning
Unknown Uncertain state Uncertain state
Modifying A database instance pool is updating (for example: adding and removing instances, scaling instance levels) Instance pool is updating (for example: adding and removing instances, scaling instance levels)
Migrating Database is migrating to Advanced tier N/A

Customizable Features

Advanced databases provide flexibility over traditional Heroku Postgres databases by having customization options. These customizable features let users adjust their database to fit their needs as their app requirements change.

You can customize these options:

Customization Feature Command Flag
Create the database in a Private or Shield space of the app data:pg:create For a Private Space: --network private

For a Shield Space: --network shield
Enable or disable high availability on a leader instance pool data:pg:create
data:pg:update
With data:pg:create --high-availability or data:pg:create --no-high-availability

With data:pg:update through interactive prompts
Add follower instance pools data:pg:create
data:pg:update
With data:pg:create --followers=[value] or through interactive prompts

With data:pg:update through interactive prompts
Scale the number of follower instance pools data:pg:update With data:pg:update through interactive prompts
Set storage quota thresholds data:pg:quotas:update With data:pg:quotas:update --warning=[value] --critical=[value]

When customizing these features, keep in mind:

  • You can only use data:pg:create to add follower instance pools to a new database when provisioning. If you use the data:pg:create interactive prompts, you can create multiple follower instance pools. If you use the --followers flag in data:pg:create, you can only create one follower instance pool with a specified number of instances. To add follower instance pools to an existing database, use the interactive data:pg:update command.
  • You can only enable and disable HA on the leader instance pool. High availability is enabled by default. Scaling your follower pools to more than one instance enables high availability on follower instance pools. See High Availability on Heroku Postgres for more information.
  • You can’t modify the --network flag after creating the database. You can only specify it when you provision the database.

See Managing Heroku Postgres using the CLI for the commands reference.

Designating a Primary Database

The DATABASE_URL config var designates the URL of an app’s primary Heroku Postgres database. For apps with a single database, its URL is automatically assigned to this config var. For apps with multiple Postgres databases, set the primary database with heroku pg:promote.

Sharing Between Applications

You can attach the leader instance pool and follower instance pools on your database between multiple apps. Attaching follower instance pools to other apps can be helpful for distributing read load. Attachments on Advanced databases use the data:pg:attachments:* commands.

To attach the leader instance pool of your database to another app, run the command:

$ heroku data:pg:attachments:create postgresql-rugged-24211 -a attached-app --as ATTACHED_DB
Attaching postgresql-rugged-24211 to ⬢ example-app... done
Setting ATTACHED_DB config vars and restarting  ⬢ attached-app... done

To attach a follower instance pool to another app, use the --pool flag and provide the name of the follower instance pool:

$ heroku data:pg:attachments:create postgresql-rugged-24211 --pool=analytics-pool -a attached-app --as ANALYTICS_DB
Attaching analytics-pool on postgresql-rugged-24211 to ⬢ attached-app... done
Setting ANALYTICS_DB config vars and restarting ⬢ attached-app... done

To view the attachments on a database, run the command:

$ heroku data:pg:attachments postgresql-rugged-24211 -a attached-app
=== Attachments for ⛁ postgresql-rugged-24211

Attachment                               Credential Pool
──────────────────────────────────────── ────────── ─────────────
ATTACHED_DB::postgresql-rugged-24211      owner     leader
FOLLOWER_DB::postgresql-rugged-24211      N/A       analytics-pool

Modifying a Database and Instance Pools

You can modify a database and its instance pools after provisioning them. See Managing Instance Pools on Heroku Postgres Performance for more information.

Destroy the Database

Via the CLI

To destroy your Advanced database, run the command:

$ heroku data:pg:destroy postgresql-rugged-24211 -a example-app --confirm example-app
Destroying postgresql-rugged-24211 on ⬢ example-app... done
We successfully destroyed your database.

Via the Dashboard

To destroy your Advanced database from the Heroku Dashboard:

  1. Select the database from the Datastores tab.
  2. Navigate to the Settings tab.
  3. Click Destroy Database from the Destroy row.
  4. On the Delete Database page, enter the app’s name to confirm, and select Delete Database.

Additional Reading

  • Heroku Postgres Advanced category
  • Getting Started with Heroku Postgres Advanced

Feedback

Log in to submit feedback.

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
  • © 2026 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