Add postgres upsert mutations to postgraphile.
pnpm install --save postgraphile-upsert-pluginpostgraphile --append-plugins postgraphile-upsert-plugin:PgMutationUpsertPluginSee 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 updateOnConflictto column comments to prevent them from being modified on existing rows in an upsert mutation.
See CONTRIBUTING.md.
- This is a typescript-ified knock off of the original upsert plugin