| Joomla

Using Database Fix after an Update in Joomla 3.x

Sometimes when Joomla is updated, database schemas change. Occasionally, this doesn’t happen properly during the update.

Here’s how to use the database fix functionality to resolve those schemas that need to be updated to match the version running.

Database Fix is a handy section of your website that fixes any issues in the database structure (also called “schema”). If you performed a Joomla update manually or some part of the automatic update process failed, then the database schema might not match the version, which can create errors.

Here's what a perfectly working schema looks like:

Using Database Fix after an Update in Joomla 3.x


Examples of Errors

The errors could be content errors, user errors, or other types of errors. Normally the error will refer to a table or SQL which should tip you off to check the database fix page.

Here’s an example of one:

Warning
JInstaller: :Install: Error SQL Can't DROP 'username'; check that column/key exists
Files Update: SQL error file DB function failed with error number 1091
Can't DROP 'username'; check that column/key exists
SQL = ALTER TABLE `#__users` DROP INDEX `username`;

And another

Using Database Fix after an Update in Joomla 3.x

Here are some other examples. (Your sql files may have different numbers and dates)

Table 'xxx_content_types' does not have column 'content_history_options'. (From file 3.2.0.sql.)
Table 'xxx_modules' does not have column 'asset_id'. (From file 3.2.0.sql.)
Table 'xxx_postinstall_messages' does not exist. (From file 3.2.0.sql.)
Table 'xxx_ucm_history' does not exist. (From file 3.2.0.sql.)
Table 'xxx_users' does not have column 'otpKey'. (From file 3.2.0.sql.)
Table 'xxx_users' does not have column 'otep'. (From file 3.2.0.sql.)
Table 'xxx_user_keys' does not exist. (From file 3.2.0.sql.)
Table 'xxx_update_sites' does not have column 'extra_query'. (From file 3.2.2-2013-12-22.sql.)
Table 'xxx_updates' does not have column 'extra_query'. (From file 3.2.2-2013-12-22.sql.)
Table 'xxx_updates' does not have column 'version' with type 'varchar(32)'. (From file 3.2.2-2014-01-18.sql.)
Table 'xxx_users' does not have column 'requireReset'. (From file 3.3.0-2014-02-16.sql.)
Table 'xxx_user_profiles' does not have column 'profile_value' with type 'TEXT'. (From file 3.3.4-2014-08-03.sql.)

These are all easily resolved, try the following fix.


The Fix

  • Go to the Database Fix page, by navigating to Extensions -> Manage -> Database in the backend of Joomla.

01 extensions manage database - Using Database Fix after an Update in Joomla 3.x

  • Click the Fix button.

02 database fix - Using Database Fix after an Update in Joomla 3.x

Nine times out of ten that will resolve your issue and you’re good to go! You will know it's all good if you get back the all thing normal screen like pictured in the first screenshot of this article.


How to get to Database Fix without an Admin Menu

If for some odd reason you don't have an admin menu displaying on the backend of your website, you can do the following to get to the Database Fix page. Note your User must be in the Administrator or Super Administrator User Group to access this Menu Item regardless of whether it appears in the Admin Menu or you use the link below.

  • Go to [replacewithyourdomainname]/administrator/index.php?option=com_installer&task=database.fix (being sure to use your own domain name)

Interested in learning more about Joomla? Check out OSTraining’s variety of courses about Joomla today.


About the author

Jenn has worked with Joomla since 2006 and for clients since 2010. She co-organised the JUG Bay Area for many years and volunteers for the Joomla! Project regularly. Originally from Santa Cruz, CA, she now lives near Austin, TX.