- Kysely now supports all the features of SQLite on conflict clause (almost all features of the PostgreSQL on conflict clause)
Breaking changes
- All
expression
methods in the schema module previously took a raw SQL string. Those all now take adb.raw
instance instead for consistency.
// Before
db.schema
.alterTable('person')
.addCheckConstraint('some_constraint', 'a < b')
// Now
db.schema
.alterTable('person')
.addCheckConstraint('some_constraint', db.raw('a < b'))
onConflictDoNothing
andonConflictUpdate
methods have been replaced by a single onConflict method.
// Before
db.insertInto('pet').values(pet).onConflictUpdate('name', updates)
// Now
db.insertInto('pet').values(pet).onConflict(
// Also see the `columns` and `constraint` methods.
(oc) => oc.column('name').doUpdateSet(updates)
)
// Before
db.insertInto('pet').values(pet).onConflictDoNothing('name')
// Now
db.insertInto('pet').values(pet).onConflict(
(oc) => oc.column('name').doNothing()
)