Skip to content

pg_graphql

PostgreSQL version License tests


Documentation: https://supabase.github.io/pg_graphql

Source Code: https://github.com/supabase/pg_graphql


pg_graphql adds GraphQL support to your PostgreSQL database.

  • Performant
  • Consistent
  • Open Source

Overview

pg_graphql is a PostgreSQL extension that enables querying the database with GraphQL using a single SQL function.

The extension reflects a GraphQL schema from the existing SQL schema and exposes it through a SQL function, graphql.resolve(...). This enables any programming language that can connect to PostgreSQL to query the database via GraphQL with no additional servers, processes, or libraries.

TL;DR

The SQL schema

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
create table account(  id serial primary key,  email varchar(255) not null,  created_at timestamp not null,  updated_at timestamp not null ); create table blog(  id serial primary key,  owner_id integer not null references account(id),  name varchar(255) not null,  description varchar(255),  created_at timestamp not null,  updated_at timestamp not null ); create type blog_post_status as enum ('PENDING', 'RELEASED'); create table blog_post(  id uuid not null default uuid_generate_v4() primary key,  blog_id integer not null references blog(id),  title varchar(255) not null,  body varchar(10000),  status blog_post_status not null,  created_at timestamp not null,  updated_at timestamp not null ); 
Translates into a GraphQL schema displayed below.

Each table receives an entrypoint in the top level Query type that is a pageable collection with relationships defined by its foreign keys. Tables similarly receive entrypoints in the Mutation type that enable bulk operations for insert, update, and delete.

GraphiQL