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: August 27, 2026
46
Supported extensions
1
Pre-enabled
0
Vendor-specific
Not supported
Custom extensions
46 extensions
1
timescaledb
23.4k+224 30d

Enables scalable inserts and complex queries for time-series data

Time-series & Temporal·TSL·C
2
pgvector
22.8k+390 30d

vector data type and ivfflat and hnsw access methods

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

Job scheduler for PostgreSQL

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

Extension to manage partitioned tables by time or ID

Analytics & Columnar·PostgreSQL·C
5
pg_repack
2.3k+8 30d

Reorganize tables in PostgreSQL databases with minimal locks

Administration·BSD-3-Clause·C
6
pgaudit
1.7k+14 30d

provides auditing functionality

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

pgRouting Extension

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

type for storing hyperloglog data

Database Features·Apache-2.0·C++
9
rum
840+4 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
pg_similarity
402+1 30d

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