Hi!
People have been wondering a lot about our database drivers recently.
Two days ago I was asked specifically which ones we support. I think
the subject needs clarifying, especially in light of the new installer and
associated update refactoring. First and foremost, people need to
remember that MediaWiki is written with MySQL in mind. It's the
primary target, and can always be expected to work. That being said,
I think that supporting other DBMSes is great and I'm glad we do.
Earlier today on IRC, I outlined what I consider to be the DBMSes we
support and a rough criteria of why I think so. "Full support" means
that the schema and DatabaseBase subclass should be fully
functional. Patches should be written when schema changes occur
so people can stay up to date. "Partial support" means that there is a
functional DatabaseBase subclass and working schema. There may
be some edge cases it doesn't support. Updaters probably aren't
written. "Experimental" is anything less. Typically a half-implemented
DatabaseBase subclass exists.
Given those criteria, I think that the following have "full support"
in MediaWiki:
* MySQL
* SQLite
* PostgreSQL
"Partial support":
* Oracle (works, but lacks updates)
"Experimental"
* MSSQL
* DB2
* Informix?
When the new installer ships (hopefully) in 1.17, it will contain
support for MySQL, SQLite and PostgreSQL. I'm in favor of
adding Oracle in as well, as long as it's clearly labelled as
still a work in progress.
As far as the "experimental" group go, I see no harm in leaving
them in SVN. They are still mostly in development (some more
active than others) and keeping the various subclasses around
won't hurt anything. Once support gets a little more solid, then
we can look to adding them to the installer (once they're done,
it should just be a 1-line addition to Installer::$dbTypes, plus
some extra i18n)
-Chad