#6409·knex

Meta: 4.0 Release Ideas

Author: tgriesserCreated Mar 25, 2026Updated Jul 6, 2026

Starting to get back into the issues a bit here. Opening this as a meta issue tracking the potential breaking changes we might want to include in a 4.0 release. Will add to this as I see new things

Breaking

  • Drop official support for EOL Node versions - definitely drop 16.x, 18.x, 20 is in maintenance mode, depending on when we release 4.0 we may be good to drop it. Also include newer versions of Node in the testing matrix. Note: we won't officially set an engines, we just won't test on older versions and make no guarantees of support
  • Drop esm module from the CLI client - this is unnecessary in newer versions of Node. We just need to add a good amount of test and docs for the "correct way" to interop with .mjs, .cjs, .mts, etc.
  • Potentially setting min: 0 for default connection pool config
  • A way to have flagged schema builder improvements applied in a way that they don't affect existing migrations. Will open an issue at some point to explain what I mean here
  • Get rid of the confusing message "the pool is probably full" message in the KnexTimeoutError
  • Explicit connection lifecycle context & management, reworking to allow custom lifecycle behavior in acquisition & disposal management

Features

Note: these could be 3.x releases, but should definitely be done before 4.0

Bugfixes

  • MySQL Enum value escaping #4481
  • jsonSet inconsistencies #5165

Other

  • Maybe some forms of modernization? Cleanup Lodash, etc. Don't want to try to promise too much just yet