[TYPO3-dev] RFC - Remove DBAL in total
ries van Twisk
typo3 at rvt.dds.nl
Thu Jan 22 14:59:57 CET 2009
On Jan 22, 2009, at 5:37 AM, Michael Greiner wrote:
> Hello,
>
> I've read all your posts on this issue and have a long and short
> answer to this. For those who have just a minute, scroll down:
>
> First I agree with Mattes who wrote:
>
> "Don't get me wrong, I don't dislike DBAL in general, but I think it
> is bad practice to ship an extension as part of the core that does not
>
> work. ... If DBAL is such a killer feature... why doesn't it work?"
>
> Dimitry comes also to the point to keep dbal but for a reason
> that didn't seem strong enough for some of us. He wrote:
>
> "It should be fixed, not removed. Lots of people use TYPO3 with
> other databases. We keep DBAL."
>
> In my opinion the main argument for or against dbal in the core has
> nothing to do with the number of people using it. I propose a more
> sophisticated approach. As Typo3 is free software, let it also be
> free no matter which system people want or have to use. To do so it
> is absolutely crucial to come up with a stable DB abstraction.
>
> Ries wrote: "It does work properly..." - Ries, what do you mean? We
> discussed it here how difficult it is, to get a whole system (with a
> little more than only the core) run on something else than MySQL.
>
> Mattes is absolutely right when he says:
>
> "Again and again releases are shipped that simply do not work
> because we have no QA that tests even PostgreSQL." - I'm completely
> with you. This makes Typo3 a bad choice for any developer no matter
> how good Typo3 is. Here we have to talk about reliability. Many
> people don't dare to upgrade ANYTHING, because they know nothing
> will work anymore for weeks and months. I hope you you can share
> this experience.
>
> "Because core developers are not paid to implement features or fix
> bugs. They fix whatever they want to fix... Free work means free
> choice for the developers" says Dimitry but WHO tells the world WHAT
> the developers want? It seems like they do not know themselves.
>
> Mathias sees the following options: "Either fix those conceptional
> bugs, write a workaround or remove the extension from the core." And
> he is sure: "I don't tell the core devs how to do their job, I just
> think that it harms TYPO3 if bugs labeled blocker or crash are not
> fixed prior to a new release (even more if patches exist)." - which
> I think is absolutely right.
>
>
> IN SHORT:
>
> In my opinion the main argument for or against dbal in the core has
> nothing to do with the number of people using it.
>
> I propose a more sophisticated approach. As Typo3 is free software,
> let it also be free no matter which system people want or have
> to use. To do so it is absolutely crucial to come up with a stable
> DB abstraction.
>
> Two things do much harm to Typo3: New releases that are not working
> because they are not fully tested and bad communication about what
> the developers want. I don't want to tell any developer what he (or
> she) should do, instead I want the developers to make clear to the
> whole community what exactly they want. This includes a statement on
> DB abstraction now and in future that is accepted by many
> development teams, also the 5.0 team. This whole issue is far to
> important to be solved just within a cluster.
>
>
> Michael
Well,
there are two things... 1) it does work.. we have it running so as
other people do, I am not saying it's easy though.
2) It doesn't work easly out of the box, like so many other CMS
systems you can pick the DB to run on.
I created myself a more 'sophisticated' version as a proof of concept
that I could run TYPO3 on PostgreSQL and SQLite3
based on PDO extensions within PHP (I also created a version that runs
through JDBC over quercus, but that's a other story...) but it works.
However I stopped working on this mainly because that the install tool
was not using dbal at all and simply calls mysql directly to get
schema information to make a 'diff' between between tables to propose
the update.
I was waiting for the new install tool that would do a better job....
The problem with DB abstraction is not only within core, core runs
fairly easy on any other DB however there are gazillions of extensions
that uses typical MySQL code
that cannot function on other databases and that is not really the
fault of TYPO3 core. However users will complain about that once they
try on there favorite DB.
IMHO the following needs to be done for better DB abstraction:
1) Make a better class set to abstract DB calls. This should include
functions like how to to concate strings in a specific DB, retreive
schema information, others......
2) Make the install tool work with the new abstraction layer
3) Change core where needed to use this new abstraction layer
4) Inform extension developers to change there extensions to use the
new functions within 1)
Create a unit test somewhere down the line.....
Personally I think we should get rid of these sql files within
extensions at all and setup a SQL/XML schema for it, so you get away
with these ugly
SQL files with native MySQL notation (Use InnoDB etc...) much like
what AdoDB offers,
but I am afraid that that is out of the question right now and I think
it's possible to use these SQL files and get rid of the MySQL
specifics for other DB's
It just would make life easer for TYPO3 to update the DB with
changes......
The above is quite a bit of work I am afraid, although not huge. it
does solve the problem of running TYPO3 on a other RDBM other then
MySQL.
Also don't want to get rid of what Karsten wrote (the current DBAL)
although it's a horrible solution to run TYPO3 completely on other
RDBM (it's slow)
it does have some nice features to just get a couple of tables from a
other db which we have been using and I know quite a bit of users do
use it.
The above does allow to run TYPO3 more nativly on a other RDBM gaining
it's full speed from that DB.
Ries
More information about the TYPO3-dev
mailing list