Migrate to GraphQL Mesh v1
PostgreSQL / PostGraphile

This handler allows you to use the GraphQL schema created by PostGraphile, based on a PostgreSQL database schema.
To get started, install the handler library:
npm i @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.
External Plugins (e.g. FederationPlugin, PgManyToManyPlugin, PostGISPlugin)
You can add PostGraphile plugins for example FederationPlugin. You can install it like below:
npm i @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.
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.
npm i @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.
npm i @graphile/postgisSee more plugins 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 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)contextOptions(type:Any) - A file that exports a function which takes context as a paramter and returns postgraphile context options (e.g. ”./my-function#pgSettings”). See the postgraphile docs for more information.