Search code examples
oracle-databasejoomla

Is Oracle Database Supported in Joomla?


I would like to use Oracle database instead of MySQL in Joomla. Is this possible with Joomla, is there a workaround or a solution on how to implement Oracle database with Joomla? Any information will be greatly appreciated. enter image description here


Solution

  • It is said that it can be done, but it is not a job for beginners and took those guys 3 working days to do it.

    Here's why that combination doesn't work by default:

    • The database and table creation script does not work without modification.
    • The connection and the database class are written to connect to MySQL and not to Oracle (so they all use MySQL functions).
    • Some of the extensions use native MySQL functions directly, instead of connecting using the Joomla Database interface (class).

    This is what they did to make it work:

    • We fix the SQL installation script to accommodate the Oracle database in case of a new installation. In case of an existing installation, we export all the database, as well as its data to a SQL file, and then we modify the SQL file (using find and replace) to make it work with an Oracle database.
    • We load the modified installation file or the modified exported SQL file into the Oracle database.
    • We then create a copy of the Joomla database class, and then we modify all the functions to work with Oracle instead of MySQL.
    • We ensure that the Oracle drivers are properly installed and loaded by the php.ini file.
    • We rename the original MySQL database (you will know in the next step why) to something like database_name_old.
    • We switch to the new database class and fully test the website to see if some extensions are not working. If an extension ceases to work then it is a sign that this extensions is calling the original MySQL database (which no longer exists because it was renamed) directly.

    Hopefully, you aren't a beginner and those guidelines will help you do it. Otherwise, check how much it might cost by visiting the page.