Enable Postgres extensions in Studio (Database → Extensions) or with one SQL statement. 50+ extensions are available on every plan.
#Enable an extension
Open Database → Extensions in Studio, search, and switch it on. Studio installs required extensions too. Or run SQL; most extensions go into the extensions schema:
SQL
create extension if not exists pg_trgm with schema extensions;Disable an extension in Studio or with drop extension pg_trgm;. pgcrypto, uuid-ossp and plpgsql are always on. pgmq, pg_partman and vault are enabled from Studio.
#Available extensions
| Category | Extensions |
|---|---|
| Platform | pg_cron, pg_net, pgmq, vault, pg_graphql |
| AI and search | vector, pg_trgm, pgroonga, rum, unaccent, fuzzystrmatch, dict_int, dict_xsyn, bloom |
| Geo | postgis, postgis_raster, postgis_sfcgal, postgis_topology, postgis_tiger_geocoder, pgrouting, address_standardizer, address_standardizer_data_us, earthdistance, cube |
| Performance | pg_stat_statements, hypopg, index_advisor, plpgsql_check, pg_partman |
| Data types | citext, hstore, ltree, isn, seg, lo, intarray, btree_gin, btree_gist, pg_hashids, pg_jsonschema, pgjwt, uuid-ossp, pgcrypto |
| Tooling and triggers | plpgsql, pgtap, tablefunc, tcn, tsm_system_rows, tsm_system_time, moddatetime, insert_username, autoinc, refint |
#Not available
Your project shares its database server with other projects, so extensions that could break that isolation are blocked. create extension fails for them with This extension is not available on shared database servers.
| Why | Extensions |
|---|---|
| Reach other databases or internal hosts | dblink, postgres_fdw, wrappers, http (use pg_net), xml2 |
| Read server files | file_fdw |
| Read data of the whole server | pg_walinspect, pg_buffercache, pg_stat_monitor, pageinspect, pg_freespacemap, pg_visibility, pgstattuple, pgrowlocks, amcheck |
| Use a key shared by every database | pgsodium (use Vault) |
| Need a superuser or change the server | pg_repack, pg_surgery, pg_prewarm, pg_tle, pgaudit, wal2json, orioledb |
| Other untrusted languages and tools | plv8, plcoffee, plls, pljava, sslinfo, intagg |
#Example: vector embeddings
SQL
create extension if not exists vector with schema extensions;
create table public.documents (
id bigint generated always as identity primary key,
content text,
embedding extensions.vector(1536)
);