Database abstraction

Ambox outdated content.svg

This page is outdated.
Please see Manual:Database access on for more up to date informations.

MediaWiki logo

Why database abstraction ?Edit

  • MediaWiki currently runs *only* on mysql - many folks have good reasons *not* to use mysql.
  • We should either only use strict ISO-SQL or provide an easy-to-adopt database abstraction

Implementation conceptsEdit

Storage abstraction codeEdit

  • All database access should be encapsulated by high-level functions.
  • Wiki-Code should *NEVER* do any SQL queries by itself.
  • Example: mediawiki_fetch_article($topic), etc.
  • API can be used to get/post structured data.

Datebase setup and schemataEdit

  • The setup script should be extended to select the database backend
  • Every database backend has got its own schema source
  • See Proposed Database Schema Changes for ongoing schema discussion

Quality management and clear APIs are important here!Edit

Outreach to other developer communitiesEdit

It would be worthwhile to describe sandard bottleneck queries, like watchlist and allpages, which developers who use and optimize various databases could analyze and discuss. This could help identify, not only how to get the expected results in many db languages, but also what db-specific advantages there are in different SQL/stored-procedure implementations. +sj+ 17:48, 1 Aug 2004 (UTC)