How to Fork a PostgreSQL Database Cluster

PostgreSQL is an open source, object-relational database built with a focus on extensibility, data integrity, and speed. Its concurrency support makes it fully ACID compliant, and it supports dynamic loading and catalog-driven operations to let users customize its data types, functions, and more.

Forking a database cluster creates a new cluster from an existing cluster based on a specific point in time. This can be helpful for restoring a cluster's databases and data to a known working state older than the 7-day limit DigitalOcean's database restoration feature provides while also providing the flexibility to alter the configuration of the forked cluster. Forking a cluster also provides a low-risk way of using your production data to test applications, move it between datacenter regions, or archive it for later analysis. Forking is a cluster-level action that replicates all databases, users, and other settings from the original cluster.

To fork a database cluster, find the cluster on the Databases page and open its More menu.

Screenshot of Cluster More menu

In the More menu, click Fork database cluster to go to the Fork database cluster page. If you don't see that option, make sure you opened the More menu of the cluster's primary node and not a read-only node.

The Fork database cluster page has two sections: choose a state and choose a cluster configuration.

Screenshot of restore point in time menu

Choose a State

You can choose from two states:

  • Latest Transaction: This state creates a copy of your database as of the time you loaded the Fork database cluster page. It won't include transactions which occurred after you loaded the page, so you may want to refresh to capture the most recent transactions in the fork.

  • Point in Time: This state creates a copy of your database as of a specific point in time within the last 7 days. If you choose an earlier date, you will receive an error.

Choose a Cluster Configuration

You can customize the forked cluster's configuration with the following options:

  • Node size: Choose a size equal to or larger than the cluster you are forking. You cannot choose a smaller plan because of the risk of data loss.

  • Standby nodes: Select the number of standby nodes. You can choose any number, regardless of the original cluster configuration.

  • Choose a datacenter: You can select the same datacenter or a different datacenter for the fork.

The monthly cost and hourly prorate for the new cluster are displayed here. Billing stops when you destroy the cluster.

Finalize and Create

Choose a name for the forked cluster, between 3 and 63 characters. The name must be lowercase and may not contain spaces. All the databases and users will be copied to the fork, including the required defaultdb database and doadmin user.

When all required fields are complete, click the Fork Database Cluster button to initiate the fork. A fork will take longer to provision than a new cluster as the nodes are created and the data is transferred.