刚刚将我的网站升级到 1.9.3.0 并收到错误 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_entity_group_price.is_percent'

Just upgrade my site to 1.9.3.0 and got error SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_entity_group_price.is_percent'

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

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

处理您的请求时出错

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

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

提前致谢

删除var/cache/

的内容

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

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

此问题是由 table catalog_product_entity_group_price

中缺少名为 is_percent 的列引起的

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 table

2) 找到 catalog_setup

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

这将强制 Magento 重新运行 升级脚本并在数据库中创建缺失的列。

如果版本和 data_version 的值是 1.6.0.0.19.1.2 那么您没有正确刷新缓存。

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

刷新 Redis 缓存:

redis-cli flushall 

这对我有用。

从文件夹路径 "var/cache/"

中删除所有 files/folders

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

确保 table 存在。

检查此 table (sales_bestsellers_aggregated_yearly) 小麦 'product_type_id' 列在其中。如果 'product_type_id' 列在 table 中,则重新索引并刷新缓存。如果 'product_type_id' 列不在那个 table 中,那么您需要创建像附加图像一样的结构。

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

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

    更改 TABLE sales_bestsellers_aggregated_yearly 添加 product_type_id 文本字符集 utf8 整理 utf8_general_ci 在 product_id 之后不为空;

    ALTER TABLE catalog_product_entity_group_price ADD is_percent SMALLINT( 5 ) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Is Percent';

  2. 删除var/cache/

  3. 的内容