Core Platform Team/Decisions Architecture Research Documentation/Dropping Abstract Schema Support For Oracle and MSSQL
- This summary was not written by a member of the Core Platform Team, but references their discussions.
Background
editMediaWiki had database wrappers to support Oracle (since MediaWiki 1.17, with issues) and Microsoft SQL Server (since MediaWiki 1.23, for LTS releases), contributed by individual volunteers.
These databases were not widely used, at least in Pingback-monitored installs (per task T113831) outside the corporate world, and were described as "essentially unmaintained" since January 2017.
Requests for comment/Moving database abstractions out of MediaWiki core mentioned that only MySQL and SQLite were well-supported, and proposed a new type of extension for databases.
Rationale
editSupport for Oracle and MSSQL was not maintained or tested to a level that all considered adequate for an official "support" moniker, and this seemed unlikely to improve:
- For MSSQL, maintainer Skizzerz could only devote time to target LTS releases (which may have impacted Pingback stats, since it was added in MediaWiki 1.28, just after an LTS)
- For Oracle, maintainer Freakolowsky had trouble keeping up with changes. It was also not easy to use Doctrine DBAL on it, since it lacked support for unique indexes, although a draft was made.
- Proprietary database software was not installed on Wikimedia's CI systems (task T197995); doing so would require a policy exception, before considering licensing issues.
Per task T191231 and related discussion, creation of the abstraction layer based on DBAL implied the removal of support for MSSQL and Oracle from core, for now without replacement.
Decision
editSupport for Oracle and MSSQL was to be removed from core as a prelude to the move to abstract schema. The intent was to support databases via extensions, as was done for PerconaDB (albeit not in an approved way).
Result
edit- Core support, including unit tests, was removed in MediaWiki 1.34 (task T230418). The old long-term release, MediaWiki 1.31, is also no longer supported by Wikimedia, although distributions may offer their own support.
- The Phabricator projects for Oracle Database (task T230582) and MSSQL (task T230583) were archived.
- Extension:OracleTextSearch was archived in task T249656.
- Extension:Cargo removed support for both databases in task T283020.
- Various extensions have since been converted to abstract schema (task T259374), including almost all bundled extensions (task T261911), though several key Wikimedia-used extensions remain (task T261912).
- As of November 2021 (MediaWiki 1.37 beta), no Oracle or MSSQL support was available as an extension.
- It is not clear whether work has been done to enable such extensions, although "the Rdbms code is well on its way to becoming a separate library". A database service abstraction was created for Wikibase purposes.