Compare Versions - better-sqlite3
npm / better-sqlite3 / Compare Versions
What's Changed
- Readme: requires Node.js v20 or later by @Prinzhorn in https://github.com/WiseLibs/better-sqlite3/pull/1443
- Update SQLite to version 3.51.3 in https://github.com/WiseLibs/better-sqlite3/pull/1460
- fix: use HolderV2() for PropertyCallbackInfo on V8 >= 12.5 by @tstone-1 in https://github.com/WiseLibs/better-sqlite3/pull/1459
New Contributors
- @tstone-1 made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1459
Why SQLite v3.51.3 instead of v3.52.0
From the SQLite team:
Some important issues have been found with version 3.52.0. In order to give us time to deal with those issues, we plan to withdraw the 3.52.0 release. In its place, we will put up a new 3.51.3 patch release that includes a fix for the recently discovered WAL-reset bug as well as other patches. This will happen probably within about the next twelve hours.
Hence, if you were planning to upgrade to 3.52.0 tomorrow (Friday, 2026-03-14), perhaps it would be better to wait a day or so for 3.51.3.
At some point we will do version 3.52.1 which will hopefully resolve the issues that have arisen with the 3.52.0 release.
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.7.1...v12.8.0
What's Changed
- fix build: update node-abi version in package.json to ^4.25.0 by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1439
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.6.1...v12.6.2
What's Changed
- Update SQLite to version 3.51.2 in https://github.com/WiseLibs/better-sqlite3/pull/1436
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.5.0...v12.6.0
What's Changed
- Update SQLite to version 3.51.1 in https://github.com/WiseLibs/better-sqlite3/pull/1424
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.4.6...v12.5.0
What's Changed
- Fix npm publishing by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1423
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.4.5...v12.4.6
What's Changed
- Add support for Node v25 and Electron 39+ prebuilds by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1422
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.4.4...v12.4.5
What's Changed
- Include all source files in package by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1405
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.4.0...v12.4.1
What's Changed
- Update the Windows runner on build workflow to
windows-2022by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1388 - Bump stefanzweifel/git-auto-commit-action from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/WiseLibs/better-sqlite3/pull/1381
- Add node:sqlite benchmark by @weary-adventurer in https://github.com/WiseLibs/better-sqlite3/pull/1334
- Prebuild for Electron 38 by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1398
New Contributors
- @weary-adventurer made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1334
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.2.0...v12.3.0
What's Changed
- Update SQLite to version 3.50.2 in https://github.com/WiseLibs/better-sqlite3/pull/1387
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.1.1...v12.2.0
What's Changed
- Add support for electron
v37prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1386
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.1.0...v12.1.1
What's Changed
- Use node-abi 4.9.0 by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1385
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v12.0.0...v12.1.0
What's Changed
- BREAKING CHANGE: drop EOL Node.js v18 and Electron v26, v27, and v28. Add node v24 to build matrix. by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1371
- Use correct flag to determine if V8 Sandboxing is enabled by @malshoff in https://github.com/WiseLibs/better-sqlite3/pull/1373
New Contributors
- @malshoff made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1373
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.10.0...v12.0.0
What's Changed
- Increase timeout test because of GitHub Action by @Prinzhorn in https://github.com/WiseLibs/better-sqlite3/pull/1351
- Disallow transaction to return a Promise due to unexpected behaviour by @phiresky in https://github.com/WiseLibs/better-sqlite3/pull/1364
- docs: fix clone url at benchmark.md by @jNullj in https://github.com/WiseLibs/better-sqlite3/pull/1357
- Prebuild for Electron 36 by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1368
- Update SQLite to version 3.49.2 in https://github.com/WiseLibs/better-sqlite3/pull/1370
New Contributors
- @phiresky made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1364
- @jNullj made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1357
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.9.1...v11.10.0
What's Changed
- Use the
node:18-bullseyeimage for Linux x64 builds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1349
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.9.0...v11.9.1
What's Changed
- Fix small typo in api.md by @hMihaiDavid in https://github.com/WiseLibs/better-sqlite3/pull/1324
- Update thread count calculation method in worker_threads example by @nikwen in https://github.com/WiseLibs/better-sqlite3/pull/1268
- Add support for electron
v35prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1340 - Update the Ubuntu runner image in build script to
ubuntu-22.04by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1341 - Update SQLite to version 3.49.1 by @JoshuaWise in https://github.com/WiseLibs/better-sqlite3/pull/1346
New Contributors
- @hMihaiDavid made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1324
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.8.1...v11.9.0
What's Changed
- Fixed
SQLITE_ENABLE_UPDATE_DELETE_LIMITdue to breaking change in SQLite core (closes https://github.com/WiseLibs/better-sqlite3/issues/1318) - Add API doc note about statement finalization by @kjackson1998 in https://github.com/WiseLibs/better-sqlite3/pull/1310
- README: add section on Upgrading by @alxndrsn in https://github.com/WiseLibs/better-sqlite3/pull/1300
- Update README.md by @Prinzhorn in https://github.com/WiseLibs/better-sqlite3/pull/1264
New Contributors
- @kjackson1998 made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1310
- @alxndrsn made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1300
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.8.0...v11.8.1
What's Changed
- Prebuild for Electron 34 by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1316
- Update SQLite to version 3.48.0 in https://github.com/WiseLibs/better-sqlite3/pull/1315
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.7.2...v11.8.0
What's Changed
- fix: electron prebuilds on linux arm by @SvetBorislavov in https://github.com/WiseLibs/better-sqlite3/pull/1311
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.7.1...v11.7.2
What's Changed
- Update SQLite to version 3.47.2 in https://github.com/WiseLibs/better-sqlite3/pull/1303
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.6.0...v11.7.0
What's Changed
- Issue #1271: Added several missing SQLite Error codes. by @Meztlicoatl in https://github.com/WiseLibs/better-sqlite3/pull/1273
- Update SQLite to version 3.47.1 in https://github.com/WiseLibs/better-sqlite3/pull/1296
New Contributors
- @Meztlicoatl made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1273
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.5.0...v11.6.0
What's Changed
- Added NodeJS 23 Support by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1283
- Update SQLite to version 3.47.0 by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1284
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.4.0...v11.5.0
What's Changed
- Prebuild for Electron 33 by @oliverschwendener in https://github.com/WiseLibs/better-sqlite3/pull/1279
New Contributors
- @oliverschwendener made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1279
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.3.0...v11.4.0
What's Changed
- Add new patch infra. by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1239
- Update SQLite to version 3.46.1 by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1252
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.2.1...v11.3.0
What's Changed
- Prebuild for Electron 32 by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1242
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.2.0...v11.2.1
What's Changed
- Support builds for Electron v32 by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1226
- Adding SQLITE_ENABLE_DBSTAT_VTAB by @mikeburgh in https://github.com/WiseLibs/better-sqlite3/pull/1228
New Contributors
- @mikeburgh made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1228
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.1.2...v11.2.0
What's Changed
- Use node bullseye to build arm images by @viceice in https://github.com/WiseLibs/better-sqlite3/pull/1216
New Contributors
- @viceice made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1216
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.1.1...v11.1.2
What's Changed
- Fix macOS x64 builds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1210
- error C2099: initializer is not a constant by @LqdBcnAtWork in https://github.com/WiseLibs/better-sqlite3/pull/1208
New Contributors
- @LqdBcnAtWork made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1208
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v11.1.0...v11.1.1
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v10.1.0...v11.0.0
Major version was bumped due to dropping support of Node.js v21 and Electron v25.
What's Changed
- Update SQLite to version 3.46.0 by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1190
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v10.0.0...v10.1.0
What's Changed
- Update troubleshooting.md by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1178
- Fix python setuptools on macOS by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1181
- Add Node.js v22. Drop ancient EOL versions of Node.js and Electron by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1182
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.6.0...v10.0.0
What's Changed
- Add support for electron
v30prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1175 - Update SQLite to version 3.45.3 in https://github.com/WiseLibs/better-sqlite3/pull/1179
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.5.0...v9.6.0
What's Changed
- Update SQLite to version 3.45.2 by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1173
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.4.5...v9.5.0
Fixed pre-built binaries for some platforms. (https://github.com/WiseLibs/better-sqlite3/issues/1168)
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.4.4...v9.4.5
What's Changed
- fix: support SpatiaLite extension by @merceyz in https://github.com/WiseLibs/better-sqlite3/pull/1137
- Support builds for Electron v29 by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1151
- Keep GitHub Actions up to date with GitHub's Dependabot by @cclauss in https://github.com/WiseLibs/better-sqlite3/pull/1165
- Clarify error handling behavior for nested transactions in docs by @nikwen in https://github.com/WiseLibs/better-sqlite3/pull/1160
- Bump the github-actions group with 4 updates by @dependabot in https://github.com/WiseLibs/better-sqlite3/pull/1167
New Contributors
- @merceyz made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1137
- @nikwen made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1160
- @dependabot made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1167
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.4.3...v9.4.4
What's Changed
- Temporarily disable builds for electron
v29by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1148
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.4.2...v9.4.3
NOTE: Electron v29 prebuilds are broken in this release.
We'll get a new release out as soon as we can.
What's Changed
- Add support for electron
v29prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1147
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.4.1...v9.4.2
What's Changed
- Build
armbased macOS builds natively by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1135 - Add support for Windows
arm64prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1141
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.4.0...v9.4.1
What's Changed
- Update SQLite to version 3.45.1 in https://github.com/WiseLibs/better-sqlite3/pull/1133
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.3.0...v9.4.0
What's Changed
- Update SQLite to version 3.45.0
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.2.2...v9.3.0
This is identical to v9.2.1, but GitHub Actions failed to fully publish the binaries due to a network error, and failed to re-run the build job.
What's Changed
- Add support for electron
v28prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1113
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.2.0...v9.2.1
What's Changed
- Upgrade GitHub actions/checkout and actions/setup-node by @cclauss in https://github.com/WiseLibs/better-sqlite3/pull/1107
- Update SQLite to version 3.44.2 in https://github.com/WiseLibs/better-sqlite3/pull/1112
New Contributors
- @cclauss made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1107
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.1.1...v9.2.0
What's Changed
- Fix macOS and future Alpine prebuilds by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1100
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.1.0...v9.1.1
What's Changed
- Update SQLite to version 3.44.0 by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1097
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v9.0.0...v9.1.0
The major number was bumped as this build drops official support for Node 16, which is EOL.
What's Changed
- Update compilation.md by @Prinzhorn in https://github.com/WiseLibs/better-sqlite3/pull/1079
- Add support for electron
v27prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1082 - update prebuild and remove node-gyp version override by @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/1059
- Stop building and testing against Node
v16(runtime EOL) by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1061 - Update SQLite to version 3.43.2 by @mceachen/@JoshuaWise in https://github.com/WiseLibs/better-sqlite3/pull/1083
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.7.0...v9.0.0
What's Changed
- Update SQLite to version 3.43.1 by @JoshuaWise in https://github.com/WiseLibs/better-sqlite3/pull/1077
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.6.0...v8.7.0
What's Changed
- upgraded to SQLite 3.43.0 by @JoshuaWise in 6ee3399932c73c0f34d1b2e604d50b44a4e94f6f
- Upgrade dependencies by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/1052
- Fix db::serialize() crashing with Electron by @DamienEspitallier in https://github.com/WiseLibs/better-sqlite3/pull/1036
- Fix: Create target directory when copying by @felixrieseberg in https://github.com/WiseLibs/better-sqlite3/pull/1030
- fix result code type in SQliteError documentation by @cedricvanrompay in https://github.com/WiseLibs/better-sqlite3/pull/1009
- Remove SQLITE_INTROSPECTION_PRAGMAS compile-time option by @threema-danilo in https://github.com/WiseLibs/better-sqlite3/pull/927
- feat(database): now
nativeBindingsupports addon object by @destyk in https://github.com/WiseLibs/better-sqlite3/pull/974
New Contributors
- @DamienEspitallier made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1036
- @felixrieseberg made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1030
- @cedricvanrompay made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1009
- @destyk made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/974
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.5.2...v8.6.0
What's Changed
- prebuild for Node on macOS+arm64 and Windows+ia32 by @verhovsky in https://github.com/WiseLibs/better-sqlite3/pull/1002
New Contributors
- @verhovsky made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/1002
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.5.1...v8.5.2
What's Changed
- Add support for electron
v26prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1042
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.5.0...v8.5.1
What's Changed
- Add support for electron
v25prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1013
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.4.0...v8.5.0
What's Changed
- Move repetitive build commands into environment variables by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/989
- Fix the build workflow broken by #989 by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/994
- Add support for Node v20 prebuilds by @Chicken in https://github.com/WiseLibs/better-sqlite3/pull/1000
- Remove node.js v14 builds and tests (runtime EOL) by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/1001
- Fix out-of-bounds read in statement tail parser by @arimah in https://github.com/WiseLibs/better-sqlite3/pull/996
- Update SQLite to version 3.42.0 (kicked off by @mceachen) in https://github.com/WiseLibs/better-sqlite3/pull/1011
New Contributors
- @arimah made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/996
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.3.0...v8.4.0
What's Changed
- Fixed several typos inside docs by @qwerty541 in https://github.com/WiseLibs/better-sqlite3/pull/980
- Add support for electron
v24prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/983 - Change Linux runner image to
ubuntu-20.04by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/982 - Update SQLite to version 3.41.2 by @JoshuaWise in https://github.com/WiseLibs/better-sqlite3/pull/986
New Contributors
- @qwerty541 made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/980
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.2.0...v8.3.0
What's Changed
- Explicitly support node 19 by @0rnella in https://github.com/WiseLibs/better-sqlite3/pull/964
- Update GitHub action versions by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/953
- Fix
pr_bodytext ofupdate-sqliteworkflow by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/946 - Update SQLite to version 3.41.0 by @JoshuaWise in https://github.com/WiseLibs/better-sqlite3/pull/965
New Contributors
- @0rnella made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/964
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.1.0...v8.2.0
What's Changed
- Add support for electron
v23prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/951 - Upgrade mocha: 8 → 10 by @threema-danilo in https://github.com/WiseLibs/better-sqlite3/pull/928
- Update SQLite to version 3.40.1 by @JoshuaWise in https://github.com/WiseLibs/better-sqlite3/pull/952
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.0.1...v8.1.0
What's Changed
- Add support for electron
v21prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/909 - Add support for electron
v22prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/915 - Add arm64 prebuilds for macOS by @qier222 in https://github.com/WiseLibs/better-sqlite3/pull/859
New Contributors
- @qier222 made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/859
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v8.0.0...v8.0.1
Breaking Changes
- Dropped support for Node.js versions
10.xand12.x.
Non-breaking Changes
- Upgraded to SQLite version
3.40.0. - Fixed LIMIT and OFFSET queries on virtual tables, by @mandel59 in https://github.com/WiseLibs/better-sqlite3/pull/873
- Fixed various compilation issues:
- By @nathanhammond in https://github.com/WiseLibs/better-sqlite3/pull/894
- By @neoxpert in https://github.com/WiseLibs/better-sqlite3/pull/870
New Contributors
- @mandel59 made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/873
- @nathanhammond made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/894
- @neoxpert made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/870
- @threema-danilo made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/878
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v7.6.2...v8.0.0
What's Changed
- Update
prebuilddependency to v11.0.4 by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/845 - Add support for electron
v19prebuilds by @m4heshd in https://github.com/WiseLibs/better-sqlite3/pull/834
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v7.6.1...v7.6.2
What's Changed
- Update SQLite to version 3.39.1 by @JoshuaWise in https://github.com/WiseLibs/better-sqlite3/pull/841
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v7.6.0...v7.6.1
What's Changed
- Update troubleshooting.md by @thonkinator in https://github.com/WiseLibs/better-sqlite3/pull/752
- Update troubleshooting.md by @mceachen in https://github.com/WiseLibs/better-sqlite3/pull/814
- Update SQLite to version 3.39.0 by @JoshuaWise in https://github.com/WiseLibs/better-sqlite3/pull/828
New Contributors
- @thonkinator made their first contribution in https://github.com/WiseLibs/better-sqlite3/pull/752
Full Changelog: https://github.com/WiseLibs/better-sqlite3/compare/v7.5.3...v7.6.0
What's Changed
- Add support for Node
v18prebuilds by @m4heshd in https://github.com/JoshuaWise/better-sqlite3/pull/800 - Upgrade SQLite to 3.38.5. Update dependencies. by @mceachen in https://github.com/JoshuaWise/better-sqlite3/pull/808
Full Changelog: https://github.com/JoshuaWise/better-sqlite3/compare/v7.5.1...v7.5.2
What's Changed
- Upgraded to SQLite version 3.38.2 (see commit and SQLite's release notes)
- Add support for electron
v17prebuilds by @m4heshd in https://github.com/JoshuaWise/better-sqlite3/pull/757 - Add Linux prebuilt binaries for
armv7andarm64and other improvements by @m4heshd in https://github.com/JoshuaWise/better-sqlite3/pull/758 - Removed usage of symlinks during installation, which caused issues on some platforms b544892631daa29104f871f6c21d225e2c2e4b23
Full Changelog: https://github.com/JoshuaWise/better-sqlite3/compare/v7.5.0...v7.5.1
- Upgraded SQLite to version
3.37.2 - added the
.busyproperty to prepared Statements - added the
nativeBindingoption to the Database constructor - changed the
codeproperty ofSqliteErrorto be enumerable - added
SqliteErrorto the API documentation - Removed
tardependency - Reduced the size of installing
better-sqlite3(by using afileslist inpackage.json)
What's Changed
- Upgraded to SQLite version
3.37.0
New Contributors
- @StoneCypher made their first contribution in https://github.com/JoshuaWise/better-sqlite3/pull/676
Full Changelog: https://github.com/JoshuaWise/better-sqlite3/compare/v7.4.5...v7.4.6
What's Changed
- Added electron
v16prebuild support by @m4heshd in https://github.com/JoshuaWise/better-sqlite3/pull/726 - Updated
prebuild-installtov7.0.0by @m4heshd in https://github.com/JoshuaWise/better-sqlite3/pull/724 - Added arm64 prebuilds for alpine by @Chicken in https://github.com/JoshuaWise/better-sqlite3/pull/714
New Contributors
- @Chicken made their first contribution in https://github.com/JoshuaWise/better-sqlite3/pull/714
Full Changelog: https://github.com/JoshuaWise/better-sqlite3/compare/v7.4.4...v7.4.5
added prebuilds for Alpine containers(looks like this failed)- added prebuilds for Windows 32-bit
- fixed various installation issues
- Upgraded SQLite to version
3.36.0 - Added
SQLITE_ENABLE_MATH_FUNCTIONScompile-time option
- Fixed some installation issues
- Added prebuilt binaries for Node v16
- Added prebuilt binaries for Electron v13
- Added the
db.table()method, which allows users to register virtual tables.
- Added the
db.serialize()method. - Buffers returned from
db.serialize()can be opened as in-memory databases by passing them tonew Database(buffer). - Added the
stmt.readonlyproperty. - added the
directOnlyoption to user-defined functions and aggregates.
- Fixed subclassing (e.g.,
class MyClass extends Database {})
- Fixes for Jest environments
- Updated SQLite to v3.35.2
Updated SQLite to version 3.32.0.
Breaking changes
- Dropped support for Node.js versions < 10
- Replaced the
Integerlibrary with nativeBigInts - Removed the
db.checkpoint()method in favor ofdb.pragma('wal_checkpoint(RESTART)') - Removed the "memory" option when opening databases in favor of SQLite3's
":memory:"filename convention
Non-breaking changes
- Added support for worker threads (see an example here)
- Added support for Jest environments
- Fixed many issues related to users building packaged executables, including:
FATAL ERROR: v8::ToLocalChecked Empty MaybeLocalFATAL ERROR: v8::Object::GetAlignedPointerFromInternalField()Error: Cannot find module '...\node_modules\integer\node- Various electron-related issues
- Added an optional second parameter to
db.loadExtension()which allows users to specify the entry point of the extension - Improved documentation for building custom configurations
- Documented some undocumented features.
- Enabled SQLITE_ENABLE_GEOPOLY
- Enabled SQLITE_THREADSAFE=2
- Enabled SQLITE_OMIT_SHARED_CACHE
- Removed SQLITE_USE_URI
- The "verbose" option now logs SQL passed to db.exec() in statement-by-statement fashion, rather than all at once (to match the behavior of using prepared statements)
- Added "unsafe mode" which allows advanced users to do dangerous things at their own risk:
- allows users to mutate the database while iterating through a query, which has non-deterministic behavior
- disables
SQLITE_DBCONFIG_DEFENSIVEwhich allows users to corrupt their database file and execute undefined behavior
Breaking changes
- Enabled
SQLITE_LIKE_DOESNT_MATCH_BLOBS. - Enabled
SQLITE_DQS=0.
Non-breaking changes
- Updated SQLite to version 3.31.1.
- Fixed many installation bugs.
- Added support for prebuilt binaries.
- Prebuilt binaries are available for this version, and will be available for all subsequent versions. The binaries are built by
prebuildwhenever a new release tag is made in github, via a travis CI workflow. As you can see in the travis config file,prebuildcurrently builds binaries for Node 8, 10, and 12, and Electron 2, 3, 4, 5, 6, and 7. Non-LTS node versions are not supported, but compilingbetter-sqlite3from source should still work fine for those versions, as it always had. Prebuilt binaries are only made for Linux and Mac OSX, not Windows (but again, building from source should work fine on Windows too).
- Prebuilt binaries are available for this version, and will be available for all subsequent versions. The binaries are built by
- Added support for online backups via the db.backup() method.
- Added verbose mode, which allows you to log all SQL executed by a database connection.
- You can now execute read-only SQL while retrieving data via stmt.iterate().
- Previously, you would get a "database connection is busy" error.
- This allows you to perform nested calls to stmt.iterate().
- Removed the
SQLITE_OMIT_TRACEcompilation option. - Enabled the
SQLITE_TRACE_SIZE_LIMIT=32compilation option.
- Updated SQLite to version 3.26.0.
- Added the
Statement#raw()andStatement#columns()methods. - Enabled
SQLITE_DBCONFIG_DEFENSIVE.
This major version provides powerful new features, bug fixes, improved performance, and much much more.
Breaking changes
- Dropped support for Node.js versions < 8.
- Renamed
info.lastInsertROWIDtoinfo.lastInsertRowid(docs). - Renamed
stmt.returnsDatatostmt.reader(docs). - The
db.pragma()method now accepts{ simple: true }instead of atrueboolean (docs). - Redesigned the
db.transaction()method:- Transaction objects have been removed.
- The
db.transaction()method now takes a function and returns a function (a wrapper). - The returned function will automatically run inside a transaction.
- Nested transactions (savepoints) are supported.
- Read the full documentation here.
- Removed the
db.register()method, added thedb.function()anddb.aggregate()methods:- The
db.function()method is used to register regular user-defined functions. - The
db.aggregate()method is used to register user-defined aggregate functions. - The APIs for both methods have been changed from the old
db.register()method. Read the new documentation here and here, respectively. - The
db.aggregate()method can also register window functions.
- The
- Enabled the
SQLITE_ENABLE_FTS3_PARENTHESIScompilation option (more info). - When opening a database, the
memoryandreadonlyoptions are now mutually exclusive (docs). - Moved all documentation from the wiki to the repository itself (here).
- Documentation for the (deprecated) version v4.x.x can be found here.
Non-breaking new features
- SQLite3 was upgraded to version 3.25.2.
- Enabled the following compilation options:
- Users can now compile
better-sqlite3against their own customized version of SQLite3: - If the process exits gracefully (i.e., the event loop has no more work to do), all open databases will automatically be closed. This does not happen for forced exits (i.e.,
process.exit(),SIGINT, etc.). - Added the
timeoutoption when opening a database (docs). - Added support for anonymous in-memory databases, using the
":memory:"filename (more info). - Added the
stmt.expand()method, which namespaces result columns by table name (docs).
Bug fixes and other minor improvements
- Fixed a bug that caused
v8::ToLocalChecked Empty. - Fixed a bug that caused
db.inTransactionto betruewhen the database was closed. - Fixed a bug that prevented users from including trailing whitespace in prepared statements.
- Fixed many v8 deprecation warnings.
- Fixed many installation-related bugs.
- Improved performance of user-defined aggregate functions by ~15%.
- Added many other (minor) performance optimizations.
This is (probably) the last release of v4.x.x. Any documentation needed for this version can be found here. If possible, users should upgrade to version 5.0.0.
- The build system was completely overhauled, hopefully fixing many installation bugs
- SQLite was upgraded to version 3.24.0
A bug was fixed that was making it difficult for many Windows users to install the package.
- Replaced the
Statement#each()method with the new (and much more powerful)Statement#iterate()method. - Support for Node.js versions below 6.0.0 have been dropped.
SQLite3 extensions are now supported. See the docs to learn how to use them.
The database constructor now supports the fileMustExist option.
Added the db.inTransaction getter, allowing you to check if the database connection is currently in an open transaction.
The bundled sqlite3 engine has been upgraded to version 3.19.3.
This major version provides some powerful new features, introduces a better API for some functions, and comes with many small performance enhancements.
Breaking changes
- readonly mode has been reimplemented to use sqlite's engine-level readonly mode, instead of being implemented at the library level.
Database#pragma()has been reworked to return proper result types (instead of just strings), and now works properly with readonly mode.Database#checkpoint()has been completely reworked. It now accepts different arguments and has a different return value. By default, it now checkpoints all attached databases instead of just the main database. To learn how to use it, click here.- The
Database.Int64class has been replaced byDatabase.Integerwhich is a reference to the self-contained integer package.Database.Integerhas a very different API from the oldDatabase.Int64, and provides many powerful features and utilities. Read about it here. - All boolean options (like
new Database(options.readonly)orstatement.pluck(newState)) must bebooleanif provided. Previously, they used the truthiness of whatever was provided, but now the provided value must either betrue,false, or omitted. An error will be thrown if a non-boolean value is provided.
Non-breaking new features
- The bundled sqlite3 engine has been upgraded to version 3.19.2.
- When an sqlite3-related error is thrown, it will be an
SqliteError, which is a subclass ofError, and has acodeproperty that corresponds to a result code.- This allows you to do checks like
if (err.code === 'SQLITE_CONSTRAINT_UNIQUE') - The
SqliteErrorclass is available atDatabase.SqliteError
- This allows you to do checks like
Database#register()now accepts generator functions, which registers a custom aggregate SQL function. To learn how to use them, read here.
Bug fixes and other minor improvements
- The
nanpackage dependency has been removed, slightly improving performance. - When more than 4294967295 rows are returned by
Statement#all(), an error is thrown instead of corrupting the results returned from the database (this is the maximumarray.lengthin nodejs). - You can now use a combination of multiple prefixes (
$foo,:foo,@foo) when creating a statement or transaction with named parameters. Previously this would result in errors being thrown. - The
Statement#bind()andTransaction#bind()methods can now be used even if the query was previously executed. - The performance of binding named parameters has been significantly improved.
- Many other minor performance enhancements.
Expected issues
The installation process has been completely rewritten, so I expect there to be installation issues when using Windows and/or Electron. If an issue like this comes up, please open an issue and I'll fix it as soon as possible.
fa3624e..0985983 improved performance of binding named parameters 0215d67, 03713e2 improved error messages when binding parameters 77ea5b1, f700521, d898405, 1d4c786 improved general performance
85612bf Minor performance optimization for Statement#each()
c7b5d38 Significant performance optimization for Statement#all()
This release fixes a few minor bugs, significantly improves overall performance, and introduces the db.register() method, which allows you to define custom SQL functions.
0d4e336 added the db.register() method, allowing you to register custom SQL functions f3daddb prepared statements and transactions can now be reused even after the table schema changes 6fff040 pluck() and safeIntegers() can no longer be invoked within an each() callback function
ba97614 updated sqlite to 3.18.0
6b65dc3..1283e97 completely rewrote benchmarks
d2921ac minor performance improvement for .each()
550fd8d added readonly mode via new Database(filename, {readonly: true})
404c739 improved performance of transaction objects
5041cd8 updated copyright year
9588787 defaultSafeIntegers() now has the same semantics as safeIntegers()
59af62a removed event emitter from database prototype
0faf7a4 databases now open and close synchronously, instead requiring developers to use the event emitter interface
852df57 added electron support
4935a1e updated to sqlite3 3.15.0
7dc4add Merge pull request #10 from bengotow/bengotow/ia32-support f9969da fix support for ia32 on Windows
29e04d6 added support for microsoft windows
3779fc9 read-only statements that do not return data can now be executed with .run()
This removes the .readonly property and introduces the .returnsData property as its replacement. Statements are no longer semantically segregated based on whether they modify data, but rather whether they return data. There are two major reasons for this:
- It makes more sense to
.prepare('BEGIN;').run()than to.prepare('BEGIN;').get() - Both
CREATE TABLE foo (bar)andCREATE TABLE IF NOT EXISTS foo (bar)should use the same execution method (.run())
ab3e15d fixed inconsistent parameter binding logic 5a73a4e greatly improved string performance
5a019b7 fixed minor bug with binding parameters
82863fd exposed the "memory" property on database objects
98a037a fixed edge case bug when binding buffers and using .each()
The first production-ready release of better-sqlite3.