The Guild LogoThe Guild Monogram

Search docs

Search icon

Products by The Guild


Hive logoHive blurred logo


Schema Registry for your GraphQL Workflows

Skip to main content

PostgreSQL / PostGraphile


This handler allows you to use GraphQL schema created by PostGraphile, based on a PostgreSQL database schema.

To get started, install the handler library from NPM:

$ yarn add @graphql-mesh/postgraphile

Now, you can use it directly in your Mesh config file:

- name: MyDb
connectionString: postgres://postgres:[email protected]/postgres

You can check out our example that uses schema stitching with a PostgreSQL datasource. Click here to open the example on GitHub

External Plugins (e.g. FederationPlugin, PgManyToManyPlugin, PostgisPlugin)#

You can add PostGraphile plugins for example FederationPlugin. You can install it using npm or yarn like below;

yarn add @graphile/federation

and add those in your configuration file;

- name: MyDb
connectionString: postgres://postgres:[email protected]/postgres
- "@graphile/federation"

Learn more about PostGraphile plugins

Federation and Automatic Type Merging support#

Federation plugin converts your Postgraphile schema into a federated schema that can also be recognized by Stitching and this brings Automatic Type Merging. So you can install @graphile/federation package like above and add it under appendPlugins

Many-to-Many support#

If you want to have automatic many-to-many mapping across your entities. You can install @graphile-contrib/pg-many-to-many with yarn add @graphile-contrib/pg-many-to-many and add it under appendPlugins

PostGIS Support#

If you use PostGIS in your PostgreSQL database, you need to install @graphile/postgis package and add it under appendPlugins.

See more plugins to improve the experience!

Config API Reference#

  • connectionString (type: String) - A connection string to your Postgres database
  • schemaName (type: Array of String, required) - An array of strings which specifies the PostgreSQL schemas that PostGraphile will use to create a GraphQL schema. The default schema is the public schema.
  • pool (type: Any) - Connection Pool instance or settings or you can provide the path of a code file that exports any of those
  • appendPlugins (type: Array of String) - Extra Postgraphile Plugins to append
  • skipPlugins (type: Array of String) - Postgraphile Plugins to skip (e.g. "graphile-build#NodePlugin")
  • options - - Extra Postgraphile options that will be added to the postgraphile constructor. It can either be an object or a string pointing to the object's path (e.g. "./my-config#options"). See the postgraphile docs for more information. One of:
    • JSON
    • String
  • subscriptions (type: Boolean) - Enable GraphQL websocket transport support for subscriptions (default: true)
  • live (type: Boolean) - Enables live-query support via GraphQL subscriptions (sends updated payload any time nested collections/records change) (default: true)