Magento升级问题1.5.1.0到1.9.2.1

时间:2015-08-21 17:58:15

标签: php magento

我刚刚将Magento从1.5.1.0升级到1.9.2.1,当我尝试查看产品时,我遇到了这个错误:

a:5:{i:0;s:1427:"SQLSTATE[42S22]: Column not found: 1054 Unknown column     'rule.calculate_subtotal' in 'field list', query was: SELECT `main_table`.`tax_calculation_rate_id`, `main_table`.`tax_calculation_rule_id`, `main_table`.`customer_tax_class_id`, `main_table`.`product_tax_class_id`, `rule`.`priority`, `rule`.`position`, `rule`.`calculate_subtotal`, `rate`.`rate` AS `value`, `rate`.`tax_country_id`, `rate`.`tax_region_id`, `rate`.`tax_postcode`, `rate`.`tax_calculation_rate_id`, `rate`.`code`, IF(title_table.value IS NULL, rate.code, title_table.value) AS `title` FROM `tax_calculation` AS `main_table` INNER JOIN `tax_calculation_rule` AS `rule` ON `rule`.`tax_calculation_rule_id` = main_table.tax_calculation_rule_id INNER JOIN `tax_calculation_rate` AS `rate` ON rate.tax_calculation_rate_id = main_table.tax_calculation_rate_id LEFT JOIN `tax_calculation_rate_title` AS `title_table` ON rate.tax_calculation_rate_id = title_table.tax_calculation_rate_id AND title_table.store_id = '1' WHERE (customer_tax_class_id = 3) AND (product_tax_class_id IN ('2')) AND (rate.tax_country_id = 'GB') AND (rate.tax_region_id IN(0, 0)) AND (rate.zip_is_range IS NULL) AND (rate.tax_postcode IS NULL OR rate.tax_postcode IN('*', '', 'ig9 5bw', 'ig9 5bw*', 'ig9 5b*', 'ig9 5*', 'ig9 *', 'ig9*', 'ig*', 'i*')) ORDER BY `priority` ASC, `tax_calculation_rule_id` ASC, `tax_country_id` DESC, `tax_region_id` DESC, `tax_postcode` DESC, `value` DESC";i:1;s:6703:"#0 /home/wwwarabesquecost/public_html/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)

我尝试使用此链接手动添加它:https://sarfarazlaghari.wordpress.com/2015/06/06/magento-sqlstate42s22-column-not-found-1054-unknown-column-rule-calculate_subtotal-in-field-list/但这并没有什么区别。

以前是否有人遇到此问题?

3 个答案:

答案 0 :(得分:2)

关于

  

我尝试使用此链接手动添加它:https://sarfarazlaghari.wordpress.com/2015/06/06/magento-sqlstate42s22-column-not-found-1054-unknown-column-rule-calculate_subtotal-in-field-list/但这没有什么区别

您是说您已将该列添加到tax_calculation_rule表中,但仍然出现上述错误?如果是这种情况,那么您已经更新了错误的数据库表,或者app/etc中的配置文件指向与您认为的数据库不同的数据库。

如果那是你所说的话,那么你的问题会更清楚。

答案 1 :(得分:1)

您在该链接中找到的查询有一个明显错误:它在表中创建一个与该表名称相同的新字段。

解决错误的正确查询如下:

ALTER TABLE tax_calculation_rule
ADD calculate_subtotal TINYINT(1) NOT NULL DEFAULT 0

希望它有所帮助。

答案 2 :(得分:0)

你不应该像那样运行sql替换。 OP提到这是在升级到1.9x之后发生的。

出现此类错误意味着您的代码库已升级,但您的数据库仍然过时。

最好的方法是将模块的core_resource表(例如tax_setup)更改为其数据库之前知道的版本,并让magento处理数据库更新。