Skip to content

Release 3.0.0 - #488

Open
JanJakes wants to merge 1 commit into
trunkfrom
release/v3.0.0
Open

Release 3.0.0#488
JanJakes wants to merge 1 commit into
trunkfrom
release/v3.0.0

Conversation

@JanJakes

@JanJakes JanJakes commented Aug 12, 2026

Copy link
Copy Markdown
Member

Release 3.0.0

Prepares the version numbers and release notes for 3.0.0.

Changelog draft:


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 17 contributors.

What's new

The new driver expands what WordPress, plugins, and database tools can do on SQLite while reproducing MySQL behavior more faithfully. Highlights include:

  • A purpose-built SQL engine. The fast, version-aware lexer and parser are based on the official MySQL grammar and written in pure PHP with zero runtime dependencies.
  • Broader query support. Complex joins, subqueries, common table expressions, UNION, temporary tables, fully qualified names, joined updates, and many more INSERT, DELETE, and administration statements now work.
  • Comprehensive INFORMATION_SCHEMA emulation. WordPress and database tools can inspect SQLite databases through familiar MySQL schema tables.
  • Accurate schema introspection. SHOW, DESCRIBE, USE, and SHOW CREATE TABLE behave more like MySQL, with accurate metadata for columns, indexes, foreign keys, and constraints.
  • More faithful data handling. Types, casts, defaults, auto-increment columns, binary and hexadecimal values, dates, times, and string escaping behave more like MySQL.
  • Richer MySQL behavior. SQL modes, variables, functions, transactions, savepoints, and errors are emulated more accurately.
  • Better ecosystem compatibility. Expanded PDO MySQL support, a consistent server identity, and richer result metadata improve compatibility with WordPress, plugins, Query Monitor, Adminer, phpMyAdmin, and other tools.
  • Safer concurrent access. Write-ahead logging is enabled by default, unnecessary write locks are avoided, journal settings are preserved, and metadata updates are atomic.
  • Extensive automated testing. Dedicated test suites cover parsing, translation, metadata, concurrency, PDO, WordPress, and end-to-end workflows.

Read the original driver announcement for more background on its architecture.

Upgrading to 3.0

Upgrading an existing SQLite site is straightforward—no manual database migration is required:

  1. Back up your SQLite database file.
  2. Update the plugin normally.

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

On the first connection, the new driver detects your existing database and creates or rebuilds the internal metadata it needs. Your WordPress tables and content stay in place.

Breaking changes

Most WordPress sites need no changes. Review the following if you use an older SQLite version or integrate with the driver APIs directly.

WordPress sites and hosts

  • The new driver is always used. The legacy driver and the WP_SQLITE_AST_DRIVER feature flag have been removed.
  • SQLite 3.37.0 or newer is required. Versions 3.27.0–3.36.x require the unsafe WP_SQLITE_UNSAFE_ENABLE_UNSUPPORTED_VERSIONS opt-in and may not support every feature safely.
  • DB_NAME is required. It must be defined and non-empty.
  • Update configuration constants:
    • DATABASE_ENGINE has been removed; use DB_ENGINE.
    • DATABASE_TYPE is deprecated; use DB_ENGINE.
    • FQDBDIR is deprecated; use DB_DIR.
    • FQDB is deprecated; use DB_FILE.

Custom driver integrations

  • Update driver classes:
    • WP_SQLite_Driver is deprecated; use WP_MySQL_On_SQLite.
    • WP_SQLite_Driver_Exception has been replaced by WP_MySQL_On_SQLite_Exception.
    • WP_PDO_Proxy_Statement has been replaced by WP_MySQL_On_SQLite_Statement.
  • Use accessors instead of global PDO injection. $GLOBALS['@pdo'] is no longer supported. Use WP_SQLite_DB::get_driver() for the active driver and WP_MySQL_On_SQLite::get_sqlite_pdo() for its SQLite connection.
  • Rename constructor options:
    • pdosqlite_pdo.
    • journal_modesqlite_journal_mode.
    • synchronoussqlite_synchronous.

Thank you

Thank you to everyone who designed, built, reviewed, tested, and reported issues throughout the 2.x preview and 3.0 release-candidate cycle. Your work made this release possible and established a stronger foundation for WordPress on SQLite.

Full changelog: v3.0.0-rc.9...v3.0.0


PR comparison: v3.0.0-rc.9...release/v3.0.0

Next steps

  1. Review the changes in this pull request.
  2. Push any additional edits to this branch (release/v3.0.0).
  3. Merge this pull request to complete the release.

Merging will automatically build the plugin ZIP, create a GitHub release, and deploy to WordPress.org.

@JanJakes JanJakes self-assigned this Aug 12, 2026
@JanJakes JanJakes mentioned this pull request Aug 12, 2026
13 tasks
@JanJakes JanJakes added this to the Release 3.0 milestone Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant