You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Studio SQLite rc.6 bootstrap fatals after canonical driver migration #156
Markdown Database Integration 0.8.5+ extends the canonical WP_MySQL_On_SQLite PDO driver introduced on SQLite Integration trunk. WordPress Studio currently ships SQLite Database Integration 3.0.0-rc.6, where the same PDO implementation is named WP_PDO_MySQL_On_SQLite.
After deploying MDI v0.8.6, every WordPress and WP-CLI bootstrap fails before command dispatch:
Fatal error: Class "WP_MySQL_On_SQLite" not found
.../markdown-database-integration/inc/class-wp-markdown-driver.php:25
Impact
WordPress cannot boot on the affected Studio site.
DMC, Homeboy, OAuth, and all studio wp commands are unavailable.
The v0.8.6 SQL-mode repair cannot restore the site because class loading fails first.
Expected
MDI should use the canonical PDO statement API on both the currently deployed Studio rc.6 class name and the renamed SQLite Integration trunk class name. Compatibility belongs at the class-loading boundary and needs executable coverage for the rc.6 return/class shape.
v0.8.7 runtime verification reproduces this after successful Homeboy deployment. The release artifact updated wp-content/plugins/markdown-database-integration, but the active persisted wp-content/db.php remained from v0.8.6. That stale drop-in loads the v0.8.7 class-wp-markdown-driver.php directly, so the drop-in-only alias from #154/#155 never executes and bootstrap still fatals at line 25.
This is a mixed-version deployment contract, not a failed artifact deployment:
deployed plugin reports 0.8.7;
active wp-content/db.php lacks the alias;
Studio rc.6 exposes only WP_PDO_MySQL_On_SQLite;
studio start and studio wp core is-installed both fail with Class "WP_MySQL_On_SQLite" not found.
Required repair: retain the alias at the directly loaded driver boundary as well as in new drop-in installations, and cover the stale-drop-in/new-plugin upgrade path explicitly.
Resolved by PRs #157 and #164. The compatibility alias now exists at the directly loaded drop-in boundary, including stale-drop-in/new-plugin coverage, and capability-based result API detection covers released rc.6 plus the canonical prerelease/renamed surfaces. Current tests/smoke-driver-class-compatibility.php and tests/smoke-health.php both pass.
AI assistance: OpenAI GPT-5.6 Sol via OpenCode verified the merged source, PR history, and executable compatibility tests before closure. Chris Huber directed the audit and remains responsible for the decision.
Activity
chubes4 commentedon Jul 29, 2026
v0.8.7 runtime verification reproduces this after successful Homeboy deployment. The release artifact updated
wp-content/plugins/markdown-database-integration, but the active persistedwp-content/db.phpremained from v0.8.6. That stale drop-in loads the v0.8.7class-wp-markdown-driver.phpdirectly, so the drop-in-only alias from #154/#155 never executes and bootstrap still fatals at line 25.This is a mixed-version deployment contract, not a failed artifact deployment:
0.8.7;wp-content/db.phplacks the alias;WP_PDO_MySQL_On_SQLite;studio startandstudio wp core is-installedboth fail withClass "WP_MySQL_On_SQLite" not found.Required repair: retain the alias at the directly loaded driver boundary as well as in new drop-in installations, and cover the stale-drop-in/new-plugin upgrade path explicitly.
chubes4 commentedon Aug 14, 2026
Resolved by PRs #157 and #164. The compatibility alias now exists at the directly loaded drop-in boundary, including stale-drop-in/new-plugin coverage, and capability-based result API detection covers released rc.6 plus the canonical prerelease/renamed surfaces. Current
tests/smoke-driver-class-compatibility.phpandtests/smoke-health.phpboth pass.AI assistance: OpenAI GPT-5.6 Sol via OpenCode verified the merged source, PR history, and executable compatibility tests before closure. Chris Huber directed the audit and remains responsible for the decision.