Have ideas to improve npm?Join in the discussion! »

    gatsby-source-pg

    0.2.1 • Public • Published

    PostGraphile Graphile Heart Gatsby

    gatsby-source-pg

    This module helps you pull your PostgreSQL database into Gatsby with minimal effort.

    Crowd-funded open-source software

    To help us develop this software sustainably under the MIT license, we ask all individuals and businesses that use it to help support its ongoing maintenance and development via sponsorship.

    Click here to find out more about sponsors and sponsorship.

    And please give some love to our featured sponsors 🤩:

    Chad Furman
    Chad Furman
    *
    Storyscript
    Storyscript
    *
    Postlight
    Postlight
    *

    * Sponsors the entire Graphile suite

    Usage

    To install:

    yarn add gatsby-source-pg
    

    (or npm install --save gatsby-source-pg)

    Then add the config to your gatsby-config.js:

    module.exports = {
      /* ... */
      plugins: [
        /* ... */
     
        {
          resolve: "gatsby-source-pg",
          options: {
            connectionString: "postgres://user:pass@host/dbname",
            schema: "public",
            refetchInterval: 60, // Refetch data every 60 seconds
          },
        },
      ],
    };

    The connectionString can be any valid PostgreSQL connection string, a full connection string might look like: postgres://pg_user:pg_pass@pg_host:pg_port/pg_db?ssl=1

    How to query

    {
      postgres {
        allPostsList {
          id
          authorId
          userByAuthorId {
            id
            username
          }
          title
        }
      }
    }

    Example

    For a working example of gatsby-source-pg, see gatsby-source-pg-example.

    Thanks

    This plugin uses gatsby-source-graphql to merge the PostGraphile GraphQL schema into Gatsby's.

    Customising

    This plugin is powered by PostGraphile, which is built on the highly flexible and customisable Graphile Engine.

    You can add to options most of the PostGraphile schema-only options

    In addition, we accept the typeName and fieldName options from gatsby-source-graphql which affect how the schema is namespaced, and the refetchInterval setting to trigger refetching data every X seconds.

    A common thing you might want to do is to shorten the names that PostGraphile uses by default, you can do this using a plugin such as @graphile-contrib/pg-simplify-inflector:

    // gatsby-config.js
    module.exports = {
      /* ... */
      plugins: [
        /* ... */
        {
          resolve: "gatsby-source-pg",
          options: {
            connectionString: "postgres:///mydb",
            schema: "public",
     
            /* 👇 */
            appendPlugins: [require("@graphile-contrib/pg-simplify-inflector")],
            /* 👆 */
          },
        },
      ],
    };

    Getting help

    Pop into the Graphile Discord: http://discord.gg/graphile

    Helpful links

    Install

    npm i gatsby-source-pg

    DownloadsWeekly Downloads

    117

    Version

    0.2.1

    License

    MIT

    Unpacked Size

    11.2 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar