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:

 

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 IF NOT EXISTS IF NOT EXISTS IF NOT EXISTS `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:

Success

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

公司简介

 

自1996年以来,公司一直专注于域名注册、虚拟主机、服务器托管、网站建设、电子商务等互联网服务,不断践行"提供企业级解决方案,奉献个性化服务支持"的理念。作为戴尔"授权解决方案提供商",同时提供与公司服务相关联的硬件产品解决方案。
备案号: 豫ICP备05004936号-1

联系方式

地址:河南省郑州市经五路2号

电话:0371-63520088

QQ:76257322

网站:800188.com

电邮:该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。