Wednesday, March 23, 2011

Need for Joomla to support Multiple Databases?

When more and more users started using Joomla, it evolved as a Powerful CMS framework. The limitation of installing Joomla only on MySQL started to show up as a serious limitation.

Primary reasons to not adopt Joomla CMS. They are

1.  The companies do not have IT support staff proficient in MySQL. Not that Joomla requires complex maintainence all the time, just that companies from the IT standpoint need to plan for handling worst case scenarios.

2.  All of the internal IT applications are built on databases other than MySQL such as SQLServer/Oracle/PostgresSQL with the exception of the website.

3.  As the company grows, the IT group would like to be proficient in the software it is built upon to be able to support it effectively and efficiently. Therefore, porting the website to a SQLServer/Oracle/PostgresSQL platform would be a step in the right direction, adding IT support, saving time, saving licensing/support costs and integrating the website with the existing internal IT systems.

To add a new dimension to this award winning CMS package, we started work on porting Joomla on Oracle first. Oracle is one of the complex database with substantial amount of non standards (lack of support for ANSI SQL) in my opinion. We successfully ported Joomla 1.5 to Oracle.

Next logical step was to support Joomla 1.6 function on multi database including Oracle, SQLServer and PostgresSQL.

An obvious question when designing system to support multiple database is "Why not an ORM?".
Object-relational mapping (ORM, O/RM, and O/R mapping) in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language. There are both free and commercial packages available that perform object-relational mapping, although some programmers opt to create their own ORM tools.

During the initial stage of this project, we could have used ORM tools or extend the home grown ORM layer within Joomla.

Though the usage of ORM third party tools could have enabled various users to quickly add a non-MySQL database for Joomla, it would require for programming and the need for more qualified technical resources every time this had to be done. Also not all ORM tools are open sourced. Hence it would involve purchase of these tools, which would defeat the purpose of having to select Joomla in the first place.

Hence a more feasible solution was to extend the home grown ORM layer. Though this process is still being debated upon, we weighed the advantages and disadvantages of going each way and decided upon making the changes to Database (DB) framework in Joomla.

For Free consultation on regarding Joomla Development, Joomla Experts, Hire your Joomla Programmers, Joomla Designers log on to

No comments:

Post a Comment