Add postgres upsert
mutations to postgraphile.
pnpm install --save postgraphile-upsert-plugin
postgraphile --append-plugins postgraphile-upsert-plugin:PgMutationUpsertPlugin
See here for more information about loading plugins with PostGraphile.
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);
This plugin supports an optional where
clause in your upsert<Table>
mutation. Supports multi-column unique indexes.
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.
- This is a typescript-ified knock off of the original upsert plugin