PGQViewer

Connecting

PGQViewer connects to any PostgreSQL 19 (Beta 1 or newer) over an ordinary client connection. Each session opens a server-side connection pool that lives until you disconnect.

The connection form

Fill in host, port, database, user, password, and an SSL mode (disable, prefer, require, verify-ca, or verify-full — CA certificates ship in the Docker image, so verified TLS works out of the box). Click Connect and PGQViewer opens a connection pool and pings it before reporting success.

Running PGQViewer in Docker against a PostgreSQL on the same machine? Use host host.docker.internal — see networking notes.

Saved connections

Tick Save this connectionwith a non-empty name and the profile persists in PGQViewer's local app store (an SQLite database under the /data volume in Docker). Saved profiles appear as cards: click to open a session, hover and ✕ to remove, and a search box filters by name, host, or database. Passwords are never returned over the API.

Session persistence

Your last session is remembered locally in the browser. After a page reload a Reconnecting… splash pings the server: if the pool is still alive you land exactly where you were; if it expired, the connection form returns with a toast. The red power icon on the connection card disconnects — it closes the server-side pool and clears canvas and table state.

What PGQViewer checks about your graphs

The sidebar lists every property graph visible to your role (discovered via pg_class entries with relkind = 'g'). When you select one, PGQViewer verifies two things PostgreSQL 19 itself legally allows but that break drawing fidelity:

  • Non-unique keys — if an element's KEYisn't covered by a valid unique index, duplicate rows would silently merge into one node. PGQViewer warns you instead.
  • Edge references that miss the vertex key— if an edge's REFERENCEScolumns don't match the referenced vertex's KEY, edges can't be attached faithfully. PGQViewer blocks the projection and shows the exact CREATE PROPERTY GRAPH fix.

One genuine requirement: key columns must be exposed as properties — easiest via PROPERTIES ALL COLUMNS, or an explicit list that includes the key columns. If a graph doesn't satisfy this, PGQViewer explains exactly what's missing when you select it.