0.30.0-beta.0
Pre-release
Pre-release
Immutable
release. Only release title and notes can be modified.
Hey π
0.30 season is upon us. pnpm i kysely@next and get a sneak peak into the future!
We've got a new transactionMode: 'per-run' | 'per-migration' | 'none' property you can pass to Migrator or it's methods.
'per-run'is the classic behavior you're used to wherekyselywrap the entire run in a transaction when your dialect supports transactional DDL.'per-migration'enables each migration to pick whether it runs in its own transaction or not. Just exposeconfig: { transaction: false }from the module, right next to theup/downfunctions.'none'means no transactions are used, which is similar to the now deprecateddisableTransactions: true.
import * as fs from 'node:fs/promises'
import * as path from 'node:path'
import { FileMigrationProvider, Migrator } from 'kysely/migration'
const migrator = new Migrator({
db,
provider: new FileMigrationProvider({
fs,
migrationFolder: path.join(import.meta.dirname, 'migrations'),
}),
transactionMode: 'per-migration', // <-------------------------------
})
await migrator.migrateToLatest()We've got a new defineMigration helper function that you can use to easily write your migrations and meet the contract requirements:
import { defineMigration } from 'kysely/migration'
export default defineMigration({
up: async (db) => {
// ...
},
config: { transaction: false }, // <--------------------
})π Features
PostgreSQL π / MSSQL π₯
- feat: Per-migration transaction configuration by @lourd & @igalklebanov in #1671
SQLite π
- feat: deny passing BLOB-like columns to SQLite JSON helpers by @hwisu & @igalklebanov in #1698
π Bugfixes
π Documentation
π¦ CICD & Tooling
β οΈ Breaking Changes
disableTransactionsis deprecated. Use the newtransactionMode: 'none', ortransactionMode: 'per-migration'with combination ofconfig: { transaction: false }.
SQLite π
- Trying to pass records with
BLOBcolumns in JSON helpers emits compile-time errors - e.g.KyselyTypeError<'SQLite does not support passing `BLOB` values to `json_object`. Cast to `TEXT`.'>
π€ New Contributors
What's Changed
Full Changelog: 4ba0bd4...v0.30.0-beta.0