The remainder of this page is kept for posterity.
Why Database independence?
Tiki uses a database abstraction layer so it can be used with many databases (PostgreSQL, SQLite) in addition to MYSQL. However, anything but MySQL is no longer officially supported.
We're working on fixing remaining issues of bringing back the alternatives and although default installations are partly working, we can not yet guarantee a stable or bug-free usage of Tiki with databases other than MySQL.
You can expect other databases for later versions though.
Things to note and discuss
- MySQL search vs DB independent search (we're using fulltext-indices which not all DBS support)
- Some code is using MySQL BLOB, whereas PostgreSQLs equivalent is BYTEA.
Now (old statement here) that we have a more flexible/powerful way to handle DB upgrades, we can use simpler SQL commands and put more logic in PHP. This can make DB independence simpler than before.
I will do something about it
If you want to help, please indicate your name below and which DB you would like to work on.
|Marc Laporte||in general|| no coding, but I can supply a test/dev server (ex.: postgresql.tikiwiki.org) |
Once Tiki works, I commit to putting at least one "Real World" project to Dogfood .
|soulhunter||PostgreSQL||I can do coding and testing. I definetelly will put a real world project: my own web will run on TikiWiki using PostgreSQL.|
|dthacker||postgreSQL, SQLite, Oracle||coding, testing and dog-fooding. Will also test with other databases (Informix, Firebird)|
|Kissaki||SQLite, PostgreSQL||I'll do these 2!|
|vilam||SQLite||Testing SQLite3 with PDO and tw 4.1 :Dogfood (in French)|
How it works
SQL commands are added to db/tiki.sql
db/convertscripts/convertsqls.sh is then run.
It calls PHP executing the following scripts:
- db/convertscripts/mysql_to_pgsql.php MySQL to PosgreSQL
- db/convertscripts/mysql_to_sqlite.php MySQL to SQlite
and those will generate the converted scripts:
Contact all developers and people that have reported bugs related to database independence to inform them of the impending deadline.Done 2009-06-08 Identify maintainers
- Monitor http://wiki.postgresql.org/wiki/TikiWiki_CMS/Groupware
- Get Tiki to install with various DBs
- Tiki 3.0 won't install with PostgreSQL http://demo.tikiwiki.org/postgresql/
- Trunk as of 2009-08-08 (Future 4.0) won't install http://db.tikiwiki.org/postgresql-trunk/tiki-install.php (with Postgresql 7.4)
- Fix bugs, especially in more important features
- update developer documentation, especially DbAbstractionDev (which dates from 2004! and needs to be moved to dev.tikiwiki.org) so developers don't introduce regressions
- Monitor commits
- Ideally have a script which can detect errors.
- Promote Tiki within the Database's community
- Make upgrade procedure also be DB independant
- Not directly related, but we need to complete the move to PDO (now in the code but not activated by default)
PostgreSQL Wiki Converting from MySQL to PostgreSQL
Drupal was in a similar situation (Ticket from 21. Nov. until 5. Jan. 2009)
Some Differences Between PostgreSQL + MySQL
(taken from an article by Joel Burton on wiki.postgresql.org)
Some differences between adodb and pdo
- pdo implements ifnull only for mysql
- pdo does not implement the tiki logs