Skip to content

cdaringe/postgraphile-upsert

Folders and files

NameName
Last commit message
Last commit date
Dec 9, 2023
Jul 1, 2022
Jul 1, 2022
Jul 29, 2023
Jul 1, 2022
Jul 1, 2022
Feb 15, 2019
Jul 24, 2024
Jul 1, 2022
Jul 1, 2022
Aug 5, 2024
Aug 5, 2024
Dec 6, 2023
Aug 29, 2021
Jul 1, 2022

Repository files navigation

postgraphile-upsert-plugin

Add postgres upsert mutations to postgraphile.

semantic-release main

Getting Started

Install

pnpm install --save postgraphile-upsert-plugin

CLI

postgraphile --append-plugins postgraphile-upsert-plugin:PgMutationUpsertPlugin

See here for more information about loading plugins with PostGraphile.

Library

import express from "express";
import { postgraphile } from "postgraphile";
import { PgMutationUpsertPlugin } from "postgraphile-upsert-plugin";

const app = express();

app.use(
  postgraphile(pgConfig, schema, {
    appendPlugins: [PgMutationUpsertPlugin],
  })
);

app.listen(5000);

Usage

This plugin supports an optional where clause in your upsert<Table> mutation. Supports multi-column unique indexes.

Example

create table bikes (
  id serial primary key,
  make varchar,
  model varchar
  serial_number varchar unique not null,
  weight real
)

A basic upsert would look like this:

mutation {
  upsertBike(
    where: { serial_number: "abc123" }
    input: {
      bike: {
        make: "kona"
        model: "kula deluxe"
        serial_number: "abc123"
        weight: 25.6
      }
    }
  ) {
    clientMutationId
  }
}

Smart Tags Support

  • Add @omit updateOnConflict to column comments to prevent them from being modified on existing rows in an upsert mutation.

Contributing

See CONTRIBUTING.md.

Credits