Installation
Requirements
PostgreSQL 17. That is what CI builds and tests on every commit. The code
depends on Query->rteperminfos, which is PostgreSQL 16+, so 16 will probably
work — but "probably" is not "tested", so it is not claimed.
You need to be able to install extensions in the target database. On RDS, Cloud SQL and most managed Postgres you cannot; see Credit for the tool that works there.
Docker
The fastest way to get a server with the extension already loaded:
git clone https://github.com/sajonaro/pg_describe
cd pg_describe
docker compose up -d # PGPORT=5433 docker compose up -d if 5432 is taken
The image builds the extension and runs CREATE EXTENSION in the demo database
and in template1, so databases created later inherit it.
PGXN
pgxn install pg_describe
Then, in each database that needs it:
CREATE EXTENSION pg_describe;
From source
Building needs the PostgreSQL server headers and a C compiler:
| Distribution | Package |
|---|---|
| Debian / Ubuntu | postgresql-server-dev-17 |
| RHEL / Fedora | postgresql17-devel |
The Makefile is standard PGXS, so it builds against whatever pg_config is on
your PATH:
make
sudo make install
CREATE EXTENSION pg_describe;
To run the regression suite against a server you control:
PGUSER=postgres PGDATABASE=contrib_regression make installcheck
The TypeScript generator
pg-describe-gen is published separately on npm and needs Node 18+ and a
database with the extension installed:
npm install --save-dev pg-describe-gen