Studio edition /

Extensions

See the installed and available PostgreSQL extensions, and install, update or drop them with what each one needs. Studio edition.

On this page

Open it#

In the Studio edition, switch to Advanced and pick Extensions in the sidebar. Filter extensions narrows both lists by name.

Installed#

Each installed extension shows its version and its schema. When the server has a newer version, it shows both, such as 1.4 → 1.8, and Update runs ALTER EXTENSION … UPDATE to the server's default version.

Available#

The extensions the server has but this database doesn't use, with their default version and description. The popular ones come first, marked Popular: pg_stat_statements, pgcrypto, pg_trgm, postgis, vector, uuid-ossp, citext and hstore.

What the server can offer depends on its image. The official postgres image brings the contrib extensions (pgcrypto, pg_trgm, hstore…); others, such as postgis or vector, need an image that includes them.

Install opens the review. You can pick the Schema to install it in, or leave Default schema. Gresbase warns when:

  • The extension requires others that are not installed. It adds CASCADE, which installs them too.
  • It needs shared_preload_libraries. It installs, but it won't work until the server loads it and restarts.

Extensions that need preloading#

Some extensions only work when the server loads them at startup. Gresbase marks them needs preload: pg_stat_statements, pg_cron, timescaledb, citus, pgaudit, pg_squeeze, pg_wait_sampling, pg_qualstats, pg_stat_kcache, pglogical, pg_partman_bgw and pg_prewarm. PostgreSQL doesn't say which extensions need it, so this is a known list.

Add the library to shared_preload_libraries and restart PostgreSQL. With the postgres image in Compose:

docker-compose.yml
services:
  db:
    image: postgres:17
    command: ["postgres", "-c", "shared_preload_libraries=pg_stat_statements"]

Reading shared_preload_libraries needs pg_read_all_settings (or superuser). Without it, Gresbase can't tell what is loaded and always warns.

Drop#

Drop lists what depends on the extension outside itself: other extensions that require it, and objects such as columns that use its types. If something depends on it, you must tick Drop them too (CASCADE), which drops those objects as well. You confirm by typing the extension's name.

CASCADE drops columns and their data. Read the list before you confirm.

Permissions#

  • A superuser can install any extension the server has.
  • Other roles can install trusted extensions (PostgreSQL 13 and later) when they have CREATE on the database. Gresbase says so on top of the list and marks the rest needs superuser.
  • Without superuser or CREATE on the database, extensions can be seen, not installed.
  • Updating or dropping an extension needs to own it (or be a superuser).

In read-only mode the lists are visible and nothing can be installed, updated or dropped. See also Security and networking.