PostgreSQL / PostGraphile

This handler allows you to use the GraphQL schema created by PostGraphile (opens in a new tab), based on a PostgreSQL database schema.
To get started, install the handler library:
yarn add @graphql-mesh/postgraphileNow, you can use it directly in your Mesh config file:
sources:
- name: MyDb
handler:
postgraphile:
connectionString: postgres://postgres:password@localhost/postgres
# You can also use environment variables like below
# connectionString: postgres://{env.POSTGRES_USER}:{env.POSTGRES_PASSWORD}@localhost/postgresYou can check out our example that uses schema stitching with a PostgreSQL data source. Click here to open the example on GitHub (opens in a new tab).
External Plugins (e.g. FederationPlugin, PgManyToManyPlugin, PostGISPlugin)
You can add PostGraphile plugins (opens in a new tab) for example FederationPlugin. You can install it like below:
yarn add @graphile/federationand add those in your configuration file;
sources:
- name: MyDb
handler:
postgraphile:
connectionString: postgres://postgres:password@localhost/postgres
appendPlugins:
- '@graphile/federation'Learn more about PostGraphile plugins here (opens in a new tab).
Federation and Automatic Type Merging support
The Federation plugin converts your Postgraphile schema into a federated schema that can also be
recognized by Stitching, which brings Automatic Type Merging. So you can install
@graphile/federation package like above and add it under appendPlugins.
Many-to-Many support
Suppose you want to have automatic many-to-many mapping across your entities. You can install
@graphile-contrib/pg-many-to-many and add it under appendPlugins.
yarn add @graphile-contrib/pg-many-to-manyPostGIS Support
If you use PostGIS in your PostgreSQL database, you need to install @graphile/postgis package
and add it under appendPlugins.
yarn add @graphile/postgisSee more plugins (opens in a new tab) to improve the experience!
Config API Reference
connectionString(type:String) - A connection string to your Postgres databaseschemaName(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 thoseappendPlugins(type:Array of String) - Extra Postgraphile Plugins to appendskipPlugins(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 (opens in a new tab) for more information. One of:JSONString
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)