Support MySQL database
Storing the data in a mysql database
I do not see what supporting MySQL database would bring to the application in terms of features. A technical choice was made (PostgreSQL) which should to me not limit user adoption. Provided that some of the many individuals have some talent for development, one could program and share some rewrite of the code for supporting both and let the core team progress on more relevant features.
MySQL has more deployments as its the traditional "LAMP" stack as such it makes sense to support it via PDO that way those that want PostgreSQL can use it, those that want MySQL can use that as well and maybe even sqlite would be a possibility. Having PDO support would definitely aid in having more davical deployments.
Christian Paminger commented
I don't need/like MySQL. PostgreSQL is much easier to administrate and much more powerful. MySQL is not real under GPL I think. I think its better to use SQLite, if someone needs a small and handy DB.
Thanks to Andrew for using PostgreSQL!!!
Markus Ewald commented
It's great that DAViCal is considering MySQL. As probably many other server admins, I'm running a webserver with MySQL already set up for half a dozen other applications (website CMS, build server, SpamAssassin) and wouldn't want to install and maintain a second database server at the same time.
Jelle de Jong commented
I spent my day getting DAViCal up and running, and would like to thank you for developing and supporting this create peace of software. I made the step to DAViCal from Darwin Calendar because of the sustainable development and the interest to actually start making the steps for MySQL (or MySQL fork) database. The main reason for my MySQL preference is the fast amount of knowledge I have for MySQL and the way al my backup, fail-over and monitor systems are setup for MySQL. I think MySQL should be enough to keep a calendar ical and contacts vcard. Hope to see MySQL support to see the light soon.
Hmmm, 1st request listed here... Well, 1 more voice here for it.
Sorry I have no knowledge to help with implementing it :(
AdminAndrew McMillan (Admin, DAViCal) commented
It is of course true that plain files will hold calendar data, but significant parts of DAViCal's implementation do currently depend on PostgreSQL functionality in particular it's stellar implementation of time-related data types and it's timezone handling. Parts that are likely to be more replaceable are the in-database functions where functionality could perhaps be rerouted off to out-of-database implementations for less capable partners.
If you're waiting until someone adds support for MySQL before trying DAViCal then I have to warn you that without someone who is interested and involved in adding this support it will never happen. My own interests lie in the CalDAV functionality, although obviously my extensive experience with PostgreSQL informed my original choice of database.
While I am happy to accept (small, incremental, understandable) patches in the direction of $OTHERDATABASE support, the code currently *is* PostgreSQL specific, and disentangling the application from PostgreSQL is far less important to me than improving DAViCal's core functionality as a CalDAV server.
If you are interested in contributing patches in this way then I would recommend going for SQLite in the first instance - I suspect that would be easier than MySQL since SQLite tends to follow the SQL specification more closely. Possibly that's just my own hopeful bias, based on my own experiences with MySQL though - I have only really used SQLite a very little.
If you're thinking of doing this yourself then that's awesome. Don't forget that DAViCal is under active development, so any monolithic patch to add $OTHERDB support will never actually apply to the current codebase by the time I have reviewed it. It is sad but true that it takes significant time to review even a 10 line patch. To review a 1000 line patch across 20 files is much much harder, which is why I'll need to be fed it in chunks.
Of course if you do something like this, then I'll probably come to trust and understand your coding and after a while I will review patches faster, and in due course I will give you commit access to the repository.
If you want to do this, you will also need to join us on the #davical IRC channel on irc.oftc.net, so we can chat about how to work around various cross-database issues, and sign up to the DAViCal Developer's mailing list at http://lists.morphoss.com/ so that the design can be discussed in ways that mailing lists support, too.
Religious database discussions are better kept elsewhere. Even sqlite with it's plain local files would be enough for calendar data.
What's important here is the major increase in users this project probably will see if it becomes installable in more common environments.
Actually, I'm holding off on trying out davical for this exact reason.
Bart Verwilst commented
Actually I am currently doing an attempt to make davical database-independent ;)
Bart Verwilst commented
@friedmann.bruno, please read up on the subject before stating things like this..
Do you really want this ?
I think the main restriction is myisam engine which doesn't support what postgresql support native. (function, language, views etc ... )