A Bookshelf plugin that adds
model.upsert()
$ npm install --save bookshelf-upsert
const upsert = require('bookshelf-upsert')
bookshelf.plugin(upsert)const model = require('a-bookshelf-model')
model.forge({ some: 'data' })
.where({ optional: 'constraint' })
.upsert({ optional: 'attributes' })Bookshelf model instances are provided the upsert method, which may be given attributes and options that will be passed along to model.save(). This implementation of upsert first attempts an update then if no rows are updated it follows up with an insert.
MIT