只需将我的网站升级到1.9.3.0并收到错误SQLSTATE [42S22]:找不到列:1054未知列'catalog_product_entity_group_price.is_percent'

时间:2016-10-13 05:08:10

标签: php magento magento-1.9

在我使用Magento 1.9.2.4之前,今天我收到消息,需要使用最新更新升级我的magento一些关键更新。

从下载程序部分升级我的网站后一切顺利没有错误等,更新后我注意到两件事情我的index.php权限被更改为666网站正确打开我的意思是首页显示,但当我点击任何product它显示错误页面,包含以下信息。

处理您的请求时出错

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_entity_group_price.is_percent' in 'field list', query was: SELECT `catalog_product_entity_group_price`.`value_id` AS `price_id`, `catalog_product_entity_group_price`.`website_id`, `catalog_product_entity_group_price`.`all_groups`, `catalog_product_entity_group_price`.`customer_group_id` AS `cust_group`, `catalog_product_entity_group_price`.`value` AS `price`, `catalog_product_entity_group_price`.`is_percent` FROM `catalog_product_entity_group_price` WHERE (entity_id='84') AND (website_id = 0)

Trace:
    #0 /home/MyWebsite/public_html/app/Mage.php(463): Mage_Core_Model_Config->getModelInstance('eav/entity_attr...', 'SQLSTATE[42S22]...')

   #1 /home/MyWebsite/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php(661): Mage::getModel('eav/entity_attr...', 'SQLSTATE[42S22]...')
   #2 /home/MyWebsite/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php(1641): Mage_Eav_Model_Entity_Abstract->walkAttributes('backend/afterLo...', Arr

不知道如何回滚,因为我没有得到备份,因为他们说它是稳定的,或者无法解决此错误。

提前致谢

6 个答案:

答案 0 :(得分:35)

删除var/cache/

的内容

将来,请记住在执行更新之前关闭编译器,所有索引和所有缓存。

发生了什么,是配置缓存仍处于活动状态,并阻止Magento检测到必须更改数据库。

答案 1 :(得分:14)

问题是由表is_percent

中缺少名为catalog_product_entity_group_price的列引起的

Magento 1.9.3包含一个在数据库中创建该列的升级文件。该文件位于此处:app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.4-1.6.0.0.19.1.5.php

启用缓存后,安装程序无法运行升级脚本,导致O​​P报告错误。升级脚本失败的另一个可能原因是,在通过FTP上传所有文件之前刷新前端或后端。

如果刷新缓存无法解决问题(请确保刷新任何外部缓存,如Redis),您可以尝试以下操作:

1)打开core_resource

2)找到catalog_setup

3)如果versiondata_versions的当前值为:1.6.0.0.19.1.5,则将两个值都更改为1.6.0.0.19.1.2并刷新前端的任何页面。

这将迫使Magento重新运行升级脚本并在数据库中创建缺少的列。

如果version和data_version的值为1.6.0.0.19.1.2,那么您没有正确刷新缓存。

答案 2 :(得分:3)

从文件夹路径“var / cache /”

中删除所有文件/文件夹

确保在开始升级之前禁用了缓存。

答案 3 :(得分:2)

对我来说,问题是Redis缓存。如果您不确定是否启用了Redis,请检查您的app / etc / local.xml文件。

刷新Redis缓存:

redis-cli flushall 

这对我有用。

答案 4 :(得分:0)

确保表格存在。

检查此表(sales_bestsellers_aggregated_yearly)wheater" product_type_id'列在其中。如果" product_type_id'列在表中,然后重新索引和刷新缓存。如果" product_type_id'列不在该表中,那么您需要创建类似附加图像的结构。

Database view sales_bestsellers_aggregated_yearly

答案 5 :(得分:-1)

今天我也遇到了同样的问题,我已经通过以下步骤解决了问题:

  1. 在数据库中运行以下查询

    ALTER TABLE sales_bestsellers_aggregated_yearly ADD product_type_id文字字符集utf8 COLLATE utf8_general_ci NOT product_id后的空白;

    ALTER TABLE catalog_product_entity_group_price ADD is_percent SMALLINT(5)UNSIGNED NOT NULL默认'0'评论'是百分比';

  2. 删除var / cache /

  3. 的内容