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 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 (T197995); doing so would require a policy exception, before considering licensing issues.
Per 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 (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 (T230582) and MSSQL (T230583) were archived.
- Extension:OracleTextSearch was archived in T249656.
- Extension:Cargo removed support for both databases in T283020.
- Various extensions have since been converted to abstract schema (T259374), including almost all bundled extensions (T261911), though several key Wikimedia-used extensions remain (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.