Table of Contents [expand]
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:
-
Select
Configure Leader Pooland 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) -
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 -
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. -
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) ... -
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 -
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 privateFor a Shield Space: --network shield |
| Enable or disable high availability on a leader instance pool | data:pg:createdata:pg:update |
With data:pg:create --high-availability or data:pg:create --no-high-availabilityWith data:pg:update through interactive prompts |
| Add follower instance pools | data:pg:createdata:pg:update |
With data:pg:create --followers=[value] or through interactive promptsWith 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:createto add follower instance pools to a new database when provisioning. If you use thedata:pg:createinteractive prompts, you can create multiple follower instance pools. If you use the--followersflag indata: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 interactivedata:pg:updatecommand. - 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
--networkflag 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:
- Select the database from the
Datastorestab. - Navigate to the
Settingstab. - Click
Destroy Databasefrom theDestroyrow. - On the
Delete Databasepage, enter the app’s name to confirm, and selectDelete Database.