只需将我的站点升级到 1.9.3.0 并得到错误 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_ent

Posted

技术标签:

【中文标题】只需将我的站点升级到 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'只需将我的站点升级到 1.9.3.0 并得到错误 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_entity_group_price.is_percent' 【发布时间】:2016-10-13 05:08:10 【问题描述】:

在我使用 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

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

提前致谢

【问题讨论】:

【参考方案1】:

删除var/cache/的内容

为了以后,记得在执行更新之前关闭编译器、所有索引和所有缓存。

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

【讨论】:

我也有同样的问题。删除缓存并不能解决。 @user3478148 如果您的 Magento 安装配置为使用文件系统进行缓存,它应该可以解决。否则,您需要刷新为缓存设置的任何其他内容。一旦缓存被清除,Magento 将收集更新安装的新配置文件,检测数据库版本不匹配并触发迁移。【参考方案2】:

此问题是由表 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

启用缓存后,安装程序无法运行升级脚本,导致 OP 报错。升级脚本失败的另一个可能原因是您在所有文件通过 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,那么您没有正确刷新缓存。

【讨论】:

感谢您的回答,但我的问题得到了不同的解决我刚刚过去了所有旧文件和文件夹我找到了 10 天前的文件备份,我刚刚过去了旧文件,我 olaha 错误消失了,也每个地方都表明我已经更新了磁电机的版本,即 1.9.3.0。是的,这不是正确的解决方案,但它对我有用。 在通过 CLI 意外删除了基础 magento 文件但更新失败后,我进行了手动更新。上述步骤并没有为我解决问题,但是在我在 CLI 中使用“chmod 777 var”更改了对 www/var 文件夹的权限之后。一切都恢复正常了。 拯救了我的夜晚。非常感谢! 谢谢...帮了我很多 好极了。还在帮我们抄贴。丹尼尔 FTW!【参考方案3】:

从文件夹路径“var/cache/”中删除所有文件/文件夹

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

【讨论】:

【参考方案4】:

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

刷新 Redis 缓存:

redis-cli flushall 

这对我有用。

【讨论】:

【参考方案5】:

确保表存在。

检查此表 (sales_bestsellers_aggregated_yearly),其中包含“product_type_id”列。如果“product_type_id”列在表中,则重新索引并刷新缓存。如果“product_type_id”列不在该表中,则您需要创建与所附图像类似的结构。

【讨论】:

【参考方案6】:

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

    在数据库中运行以下查询

    ALTER TABLE sales_bestsellers_aggregated_yearly ADD product_type_id TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER product_id ;

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

    删除var/cache/的内容

【讨论】:

以上是关于只需将我的站点升级到 1.9.3.0 并得到错误 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_ent的主要内容,如果未能解决你的问题,请参考以下文章

将 Drush 8 升级到 9 站点别名不起作用

将 django 站点从 http 升级到 https 后,我不断收到“无效的 HTTP_HOST 标头”错误电子邮件

TYPO3 升级(7.6 到 10):未找到站点配置

从 5.3 升级到 5.4 显示空白站点

数据库升级后得到 liquibase 校验和验证错误

虚幻引擎4如何将我的游戏发布到网站?