Skip to content

Releases: WordPress/sqlite-database-integration

v3.0.1

Choose a tag to compare

@github-actions github-actions released this 25 Aug 12:19
abf0dac

Changelog

  • Mark the plugin as compatible with WordPress 7.1 (#497)
  • Fix fresh multisite database setup (#492)

Contributors

The following contributors merged PRs in this release:

@JanJakes

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 13 Aug 14:23
8063adb

SQLite Database Integration 3 is here! 🎉

This release introduces an all-new SQLite database driver for WordPress, rebuilt from the ground up. Its purpose-built MySQL lexer, parser, and emulation layer deliver broader compatibility, more accurate behavior, and a stronger foundation for future improvements.

The 3.0 release spans nearly two years of work, featuring 160 pull requests and 1,075 commits from 15 contributors.

What's new

The new driver advances SQLite support for WordPress, plugins, database tools, and other MySQL-based applications. These improvements include:

  • New SQL engine: The pure-PHP lexer and parser provide extensive coverage of the official MySQL grammar.
  • Broad query support: Complex joins, subqueries, CTEs, unions, and other advanced queries are now supported.
  • Schema emulation: WordPress and database tools can query emulated MySQL INFORMATION_SCHEMA tables.
  • Schema introspection: SHOW and DESCRIBE statements provide accurate MySQL-like metadata.
  • Improved data handling: Types, casts, defaults, auto-increment, values, and escaping better match MySQL.
  • Refined MySQL semantics: Better emulation of SQL modes, variables, functions, transactions, and errors.
  • Better concurrency: Write-ahead logging and fewer locks reduce blocking between readers and writers.
  • PDO API: The new driver implements the PDO MySQL API, supporting many MySQL-based tools and applications.
  • Extensive testing: Test suites cover parsing, translation, metadata, concurrency, PDO, and end-to-end workflows.

For more information about the new driver and its architecture, read the driver announcement.

Modular design

The project was redesigned as a set of focused packages, separating the core driver from its WordPress integration:

  • SQLite Database Integration: The WordPress plugin powered by MySQL on SQLite.
  • MySQL on SQLite: A standalone PDO MySQL drop-in for running MySQL-based PHP applications on SQLite.
  • MySQL proxy (experimental): A MySQL wire protocol bridge to PDO-compatible drivers for clients outside PHP.

This architecture opens the driver to new integrations, applications, and development tools beyond WordPress.

Upgrading to 3.0

Upgrading an existing SQLite site is straightforward:

  1. Back up your SQLite database.
  2. Update the plugin to version 3.0.

On first connection, the new driver automatically initializes its metadata without changing your tables or content.

If you used the new driver preview, you can now delete the WP_SQLITE_AST_DRIVER flag.

Breaking changes

Most WordPress sites need no changes. Review the following if you use a custom setup:

  • New driver:
    • The new driver is always used. The legacy driver was removed.
    • The WP_SQLITE_AST_DRIVER feature flag was removed.
  • Updated SQLite version requirements:
    • SQLite 3.37.0 or newer is required.
    • The WP_SQLITE_UNSAFE_ENABLE_UNSUPPORTED_VERSIONS opt-in enables limited SQLite 3.27.03.36.x support.
  • DB_NAME is required:
    • It must be defined and non-empty.
    • It is used dynamically, independently of the SQLite file name and stored metadata.
  • SQLite defaults have changed:
    • Journal mode now defaults to WAL. Account for -wal and -shm sidecar files.
    • Synchronous mode now defaults to NORMAL in WAL mode.
  • Updated configuration constants:
    • DATABASE_ENGINE was removed. Use DB_ENGINE.
    • DATABASE_TYPE is deprecated. Use DB_ENGINE.
    • FQDBDIR is deprecated. Use DB_DIR.
    • FQDB is deprecated. Use DB_DIR and DB_FILE.
  • Updated driver classes:
    • WP_SQLite_Driver is deprecated. Use WP_MySQL_On_SQLite.
    • WP_PDO_MySQL_On_SQLite was replaced by WP_MySQL_On_SQLite.
    • WP_SQLite_Driver_Exception was replaced by WP_MySQL_On_SQLite_Exception.
    • WP_PDO_Proxy_Statement was replaced by WP_MySQL_On_SQLite_Statement.
  • Sunsetting $GLOBALS['@pdo']:
    • Injecting a PDO connection through $GLOBALS['@pdo'] is no longer supported.
    • Reading $GLOBALS['@pdo'] is deprecated. Use $wpdb->get_driver()->get_sqlite_pdo().
  • Renamed driver constructor options:
    • pdosqlite_pdo.
    • journal_modesqlite_journal_mode.
    • synchronoussqlite_synchronous.

Thank you

Thank you to everyone who helped build, test, review, and improve the new driver. Your work made this possible.

@JanJakes, @adamziel, @bgrgicak, @sirreal, @wojtekn, @ashfame, @zaerl, @chloe-pomegranate, @teizz, @chubes4, @johnbillion, @wp-fuse, @desrosj, @gcsecsey, @Nitinrev787

3.0 milestone: 160 pull requests
Changes since 2.2.23: v2.2.23...v3.0.0

v3.0.0-rc.9

v3.0.0-rc.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Aug 14:09
ba3b7e9

Changelog

  • Reject invalid BIT column defaults (#487)
  • Make Composer packages installable (#486)
  • Remove INET_ATON() WordPress dependency (#485)
  • Restore database version support for older WordPress releases (#484)
  • Finalize MySQL-on-SQLite 3.0 refinements (#482)
  • Prefix SQLite-specific constructor options (#481)
  • Unify emulated MySQL server identity (#479)
  • Document the 3.0 driver API (#477)
  • Expand PDO API coverage (#471)
  • Refine the 3.0 API surface (#469)
  • Add ANSI_QUOTES and SQL mode validation (#452)

Contributors

The following contributors merged PRs in this release:

@JanJakes

v3.0.0-rc.8

v3.0.0-rc.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Aug 09:24
38a6921

Changelog

  • Preserve aliases in UPDATE JOIN translation (#462)
  • Restrict SQLite installation permissions (#464)
  • Improve string escaping (#466)
  • Stabilize WordPress E2E tests (#459)
  • Address WordPress PHPUnit test fails: charset detection, length validation etc (#331)
  • Add Unicode support to the user-defined REVERSE() function (#453)
  • Simplify the MySQL-on-SQLite driver API (#449)
  • Add WordPress 7.0 compatibility (#450)

Contributors

The following contributors merged PRs in this release:

@JanJakes, @chloe-pomegranate, @chubes4, @teizz

v3.0.0-rc.7

v3.0.0-rc.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Jul 00:11
11cb7f2

Changelog

  • Preserve configured SQLite journal mode in driver wrapper (#447)
  • Release 3.0.0-rc.6 (#444)

Contributors

The following contributors merged PRs in this release:

@adamziel

v3.0.0-rc.6

v3.0.0-rc.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Jul 13:23
2d0dbc0

Changelog

  • Don't take a write lock for SET statements (fixes "database is locked" on connect) (#443)
  • Add REVERSE() to user defined functions (#434)
  • LALR(1) parser from official MySQL grammar (#429)

Contributors

The following contributors merged PRs in this release:

@JanJakes, @gcsecsey, @teizz

v3.0.0-rc.5

v3.0.0-rc.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Jun 18:36
4c7d586

Changelog

  • Default SQLite connections to WAL (#405)

Contributors

The following contributors merged PRs in this release:

@JanJakes

v3.0.0-rc.4

v3.0.0-rc.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Jun 17:57
981f43f

Changelog

  • Normalize BIT column default literals (#439)
  • Optimize MySQL lexer (~2× speedup) (#424)
  • Fix RAND() function behavior (#363)
  • CI: Disable Xdebug, use Rust release builds, consolidate unit-test matrix (#425)
  • GitHub Actions workflow updates (#404)
  • Add native Rust-based MySQL parser extension (#381, #384, #386, #389, #390, #394, #398)
  • Ship native parser as WASM (#395, #396, #397, #399, #400, #401)
  • Add SQLite plugin landing page (#407, #412)
  • Check Playground web runtime compatibility (#419)

Contributors

The following contributors merged PRs in this release:

@JanJakes, @adamziel, @johnbillion

v3.0.0-rc.3

v3.0.0-rc.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Apr 12:47
2622441

Changelog

  • Lexer: Fix possible OOB read in quoted strings (#374)
  • Add support for NO_AUTO_VALUE_ON_ZERO SQL mode (#366)

Contributors

The following contributors merged PRs in this release:

@JanJakes, @sirreal

v3.0.0-rc.2

v3.0.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Apr 14:09
de8f9b0

Changelog

  • Support MySQL BINARY operator (#369)
  • Add support for AUTO_INCREMENT value management (#367)
  • Add support for DELETE with LIMIT and ORDER BY (#365)

Contributors

The following contributors merged PRs in this release:

@JanJakes

Sponsor
SponsoredKunjungi sekarang
Promo