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. Federation)#

You can add PostGraphile plugins such as FederationPlugin and ConnectionFilterPlugin. 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"

Use FederationPlugin only if you are using federation as merger as in Federation Recipe

Learn more about PostGraphile plugins

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)