Release status: stable
|Implementation||Database, Tag, Extended syntax|
|Description||Adds easy-to-use database functionality to MediaWiki.|
|Author(s)||Mark Clements (HappyDogtalk)|
|Latest version||Version 3|
|MediaWiki||1.6 and above|
|License||CC BY-SA 2.5 or later|
|Example||Try it out on my test wiki!|
Translate the WikiDB extension if it is available at translatewiki.net
|Check usage and version matrix.|
WikiDB is a MediaWiki extension which can be used to add database functionality to your wiki.
Its core principle is to do this whilst still following a wiki-like workflow for creating and managing data. Data is therefore defined in-page via the standard editing process and, just as you can create links to pages that don't exist, you can put data into a table that doesn't exist, and you are able to display and query that data without requiring any formal structure to be defined.
By creating a table definition, however, you get to force fields to a certain data-type, define fields as aliases of each other (e.g. if different articles use a different name to refer to the same field) and easily flag up unexpected fields that may have been added in error. Changing the field definition instantly updates all data output on the wiki, however the original data is left unmodified. This means that schema changes will never result in data being lost or corrupted.
Because WikiDB allows you to define data on any page, the data can be located directly within the article it relates to. It is therefore easy to find, and there is no problem ensuring it stays up-to-date as the article changes. By default, WikiDB hides the raw data at the point that it is defined, on the assumption that you will output it in aggregated form elsewhere. However you also have the option of outputting it in a standard tabular form or to pass the fields as parameters to a template for in-line display (so if your wiki makes extensive use of infoboxes, it will be easy to update it so this data goes into a table as well).
To download WikiDB, view the documentation, request help or leave feedback, please visit my my test wiki.