Joomla学习-更新表不存在

我们的一个客户就有更新他的网站的问题。问题是“更新”表在数据库中已成为损坏。      

我们为他找到了一个解决办法,但它需要运行一个查询在phpMyAdmin。他不熟悉的过程运行数据库查询之前,所以我们创建了本教程。      

在一步一步的教程中,我们将描述问题,演示如何解决它。

问题

  • 将组件- > Joomla更新导致这个错误:

Joomla: 更新表不存在的解决办法

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')
  • 要扩展- >管理- >数据库导致这个错误:
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.)
  • 使用修复按钮不修复它。相反,它导致这个错误:
Joomla学习
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)'

解决方案

在这一点上,我们需要一个数据库解决方案。

  • 使用您的主机的控制面板来访问phpMyAdmin:
更新表不存在
  • 点击数据库和访问数据库:
Joomla
  • 转到SQL选项卡,并添加以下查询:
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';
  • 在上面的查询中,“jos”替换为您的表前缀(不含下划线)
  • 如果你不确定你的数据库表前缀是什么,你可以找到它在全局配置的服务器选项卡。
Joomla学习
  • 点击后,您应该看到一条成功消息类似如下:
Joomla