Special Offer!  Get everything at Joomlashack for a year ... only $99! You save $150! Sale ends in

Joomla: Updates Table Doesn't Exist

Joomla: Updates Table Doesn't Exist

One of our students was having a problem updating his site. The issue was the "updates" table in the database had become corrupted.

We found a solution for him, but it required running a query in phpMyAdmin. He wasn't familiar with the process of running a database query before, so we created this tutorial for him and you.

In the step-by-step tutorial, we'll describe the issue and demonstrate how to resolve it.

The Problem

  • Going to Components -> Joomla Update results in this error:
Joomla: Updates Table Doesn't Exist

An error has occurred.
 1146 Table `updates` doesn't exist SQL=SELECT DISTINCT update_site_id FROM #__updates WHERE `update_site_id` IN ( SELECT update_site_id FROM #__update_sites WHERE `last_check_timestamp` IS NULL OR `last_check_timestamp` <= '1493997061')

  • Going to Extensions -> Manage -> Database results in this error:

Table 'updates' does not have column 'infourl'. (From file 2.5.0-2012-01-10.sql.)
 Table 'updates' should not have column 'categoryid'. (From file 3.0.0.sql.)
 Table 'updates' does not have column 'extra_query'. (From file 3.2.2-2013-12-22.sql.)
 Table 'updates' does not have column 'version' with type varchar(32). (From file 3.2.2-2014-01-18.sql.)

  • Using the Fix button doesn't fix it. Instead, it results in this error:

 Table 'updates' doesn't exist SQL=SHOW COLUMNS IN `#__updates` WHERE field = 'infourl'
 Table 'updates' doesn't exist SQL=SHOW COLUMNS IN `#__updates` WHERE Field = 'categoryid'
 Table 'updates' doesn't exist SQL=SHOW COLUMNS IN `#__updates` WHERE field = 'extra_query'
 Table 'updates' doesn't exist SQL=SHOW COLUMNS IN `#__updates` WHERE field = 'version' AND type = 'varchar(32)'

The Solution

At this point, we're stuck and we'll need a database solution.

  • Use your host's control panel to access phpMyAdmin:
  • Click on Databases and access your database:
  • Go to the SQL tab and add the following query to it:

DROP table IF EXISTS jos_updates;
 CREATE TABLE `jos_updates` (
 `update_id` int(11) NOT NULL AUTO_INCREMENT,
 `update_site_id` int(11) DEFAULT '0',
 `extension_id` int(11) DEFAULT '0',
 `name` varchar(100) DEFAULT '',
 `description` text NOT NULL,
 `element` varchar(100) DEFAULT '',
 `type` varchar(20) DEFAULT '',
 `folder` varchar(20) DEFAULT '',
 `client_id` tinyint(3) DEFAULT '0',
 `version` varchar(32) DEFAULT '',
 `data` text NOT NULL,
 `detailsurl` text NOT NULL,
 `infourl` text NOT NULL,
 `extra_query` VARCHAR(1000) DEFAULT '',
 PRIMARY KEY (`update_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Available Updates';

  • In the above query, replace "jos" with your table prefix (excluding the underscore).
  • If you're not sure what your database table prefix is, you can find it in your Global Configuration's Server tab.
  • After clicking Go, you should see a success message similar to the following:


You're done! Now double check for the problem again and it should be gone. Congrats!

About the author

Nick is the Director of Support at Joomlashack and you can find him in almost every area of the site, from answering support requests and account questions to creating tutorials and software.



Since 2005, Joomlashack has been a leading supplier of free and commercial Joomla templates, Joomla extensions, and Joomla Training.
Joomlashack.com is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.