46+ PostgreSQL Extensions on DigitalOcean Managed PostgreSQL

DigitalOcean Managed PostgreSQL is a simple, no-frills managed Postgres — enable pgvector, postgis, timescaledb (PG14-17), and pg_cron with a single CREATE EXTENSION over a normal connection.

Last reviewed: May 29, 2026
46
Supported extensions
1
Pre-enabled
0
Vendor-specific
Not supported
Custom extensions
46 extensions
1
timescaledb
22.7k+235 30d

Enables scalable inserts and complex queries for time-series data

Time-series & Temporal·TSL·C
2
pgvector
21.5k+511 30d

vector data type and ivfflat and hnsw access methods

Vector & AI·PostgreSQL·C
3
pg_cron
3.8k+30 30d

Job scheduler for PostgreSQL

Time-series & Temporal·PostgreSQL·C
4
pg_partman
2.7k+30 30d

Extension to manage partitioned tables by time or ID

Analytics & Columnar·PostgreSQL·C
5
pg_repack
2.2k+13 30d

Reorganize tables in PostgreSQL databases with minimal locks

Administration·BSD-3-Clause·C
6
pgaudit
1.6k+17 30d

provides auditing functionality

Security & Audit·PostgreSQL·C
7
pgrouting
1.4k+11 30d

pgRouting Extension

Geospatial·GPL-2.0·C++
8
postgresql-hll
1.2k+4 30d

type for storing hyperloglog data

Database Features·Apache-2.0·C++
9
rum
829+3 30d

RUM index access method

Database Features·PostgreSQL·C
10

The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information.

Monitoring & Stats·BSD-3-Clause·C
11

support similarity queries

Vector & AI·BSD-3-Clause·C
12
ip4r
166+1 30d

IPv4/v6 and IPv4/v6 range index type for PostgreSQL

Data Types·PostgreSQL·C
13

bloom access method - signature file based index

Database Features·PostgreSQL·C
14

support for indexing common datatypes in GIN

Functions·PostgreSQL·C
15

support for indexing common datatypes in GiST

Functions·PostgreSQL·C
16

data type for case-insensitive character strings

Data Types·PostgreSQL·C
17

data type for multidimensional cubes

Data Types·PostgreSQL·C
18

connect to other PostgreSQL databases from within a database

Foreign Data Wrappers·PostgreSQL·C
19

text search dictionary template for integers

Functions·PostgreSQL·C
20

calculate great-circle distances on the surface of the Earth

Geospatial·PostgreSQL·C
21

determine similarities and distance between strings

Full-text Search·PostgreSQL·C
22

data type for storing sets of (key, value) pairs

Data Types·PostgreSQL·C
23

integer aggregator and enumerator (obsolete)

Functions·PostgreSQL·C
24

functions, operators, and index support for 1-D arrays of integers

Functions·PostgreSQL·C
25

data types for international product numbering standards

Data Types·PostgreSQL·C
26

Large Object maintenance

Administration·PostgreSQL·C
27

data type for hierarchical tree-like structures

Data Types·PostgreSQL·C
28

examine the shared buffer cache

Monitoring & Stats·PostgreSQL·C
29

prewarm relation data

Administration·PostgreSQL·C
30

track planning and execution statistics of all SQL statements executed

Monitoring & Stats·PostgreSQL·C
31

text similarity measurement and index searching based on trigrams

Full-text Search·PostgreSQL·C
32

cryptographic functions

Security & Audit·PostgreSQL·C
33

show row-level locking information

Monitoring & Stats·PostgreSQL·C
34

show tuple-level statistics

Monitoring & Stats·PostgreSQL·C
35

PL/Perl procedural language

Procedural Languages·PostgreSQL·C
36
Pre-enabled

PL/pgSQL procedural language

Procedural Languages·PostgreSQL·C
37

PostGIS geometry and geography spatial types and functions

Geospatial·GPL-2.0·C
38

foreign-data wrapper for remote PostgreSQL servers

Foreign Data Wrappers·PostgreSQL·C
39

data type for representing line segments or floating-point intervals

Data Types·PostgreSQL·C
40

information about SSL certificates

Monitoring & Stats·PostgreSQL·C
41

functions that manipulate whole tables, including crosstab

Analytics & Columnar·PostgreSQL·C
42

Triggered change notifications

Functions·PostgreSQL·C
43

TABLESAMPLE method which accepts number of rows as a limit

Functions·PostgreSQL·C
44

TABLESAMPLE method which accepts time in milliseconds as a limit

Functions·PostgreSQL·C
45

text search dictionary that removes accents

Functions·PostgreSQL·C
46

generate universally unique identifiers (UUIDs)

Functions·PostgreSQL·C

How to enable extensions on DigitalOcean Managed PostgreSQL

DigitalOcean has no control-panel toggle, doctl command, or shared_preload_libraries setting for extensions — your database user isn't a superuser. You enable supported extensions the standard way: run CREATE EXTENSION over a normal SQL connection.

SQL

Connect with psql (or any client) using your database credentials, then run:

-- Enable an extension
CREATE EXTENSION IF NOT EXISTS pgvector;

-- Upgrade an already-installed extension to the latest packaged version
ALTER EXTENSION pgvector UPDATE;

-- List what's currently installed
\dx

-- See everything available to install on this cluster
SELECT * FROM pg_available_extensions;

-- See the allow-list of extensions DigitalOcean permits
SELECT *
FROM pg_available_extension_versions
WHERE name = ANY(
  string_to_array(current_setting('extwlist.extensions'), ',')
);

Pre-enabled on DigitalOcean Managed PostgreSQL

These extensions ship enabled by default — no CREATE EXTENSION needed.

Notable absences

Extensions you might expect that aren't available on DigitalOcean Managed PostgreSQL, with workarounds where they exist.

postgis

Why missing: DigitalOcean publishes a separate supported-extensions table per PostgreSQL major, and the PG18 table is shorter than the others — the entire PostGIS family (postgis, pgrouting), timescaledb, pg_stat_statements, and h3/hll are not yet available on PG18 clusters.

Alternative: If you need these, provision the cluster on PG17 instead of PG18 — the version is fixed at creation time and can't be downgraded later.

citus

Why missing: DigitalOcean only ships a curated allow-list of extensions and doesn't offer the distributed-Postgres sharding extensions; citus is not on that list for any major version.

Alternative: Scale vertically on a larger node, or use native partitioning with pg_partman (which DigitalOcean does support) for large tables.

hypopg

Why missing: Index-tuning and maintenance extensions like hypopg, plv8, pglogical, and pg_squeeze aren't in DigitalOcean's supported-extensions tables, and there's no superuser access to install them yourself.

Alternative: Use EXPLAIN with real indexes on a forked/standby database for tuning, and request additions through DigitalOcean's ideas portal.

Can you install custom extensions on DigitalOcean Managed PostgreSQL?

No — managed allow-list only

DigitalOcean only supports a selected allow-list of PostgreSQL extensions — "We only support selected PostgreSQL extensions." Your database role is not a superuser, so you can't install arbitrary or custom-compiled extensions, and a subset of untrusted extensions is further governed by an extwlist.extensions allow-list enforced at CREATE EXTENSION time. To get a new extension added, request it through DigitalOcean's product ideas portal.

Learn more

Frequently Asked Questions

How do I enable an extension on DigitalOcean Managed PostgreSQL?
Connect to your database with psql or any client using your cluster credentials and run `CREATE EXTENSION IF NOT EXISTS <name>;`. There is no control-panel toggle and no doctl command for extensions — it's plain SQL only. Use `\dx` to see what's installed and `SELECT * FROM pg_available_extensions;` to see what you can add.
Does DigitalOcean support timescaledb and pgvector?
Yes to both, with a caveat. pgvector is available on all current majors (PG14-18). timescaledb is supported on PG13 through PG17 but is not yet available on PG18 clusters — if you need timescaledb, create your cluster on PG17. Enable either with `CREATE EXTENSION timescaledb;` or `CREATE EXTENSION pgvector;`.
Why is PostGIS not available on my PG18 DigitalOcean cluster?
DigitalOcean maintains a separate supported-extensions table for each PostgreSQL major, and the PG18 list is shorter — PostGIS (and pgrouting, timescaledb, pg_stat_statements, h3/hll) hasn't been added to PG18 yet. The PostgreSQL major is fixed when the cluster is created, so provision on PG17 if you need PostGIS today.
Does DigitalOcean support pg_cron?
Yes. pg_cron is on the supported-extensions list across all current PostgreSQL majors. Enable it with `CREATE EXTENSION pg_cron;`, then schedule jobs using `cron.schedule('job-name', '*/5 * * * *', 'SQL here');`. No background-worker configuration is required from you.
Can I install custom extensions on DigitalOcean PostgreSQL?
No. DigitalOcean only supports a selected allow-list of extensions and doesn't grant a superuser role, so you can't compile or install your own. A subset of untrusted extensions is further restricted by an `extwlist.extensions` allow-list. If an extension you need is missing, request it via DigitalOcean's product ideas portal.

Manage your DigitalOcean Managed PostgreSQL database with 1bench

1bench is a modern GUI client for PostgreSQL — connect to your DigitalOcean Managed PostgreSQL instance, install extensions, write queries, and inspect schemas without leaving the IDE.

Try 1bench for PostgreSQL