0

如果我将 Magento 从 2.1.8 升级到 2.2.2 并运行,setup:upgrade我会收到以下错误:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0-0-0-0' for key 'PRIMARY', query was: INSERT INTO `salesrule_product_attribute` () VALUES ()

如果我截断所有 salesrule 表,它可以工作,但我不能在生产环境中执行此操作。这个问题有什么解决方法吗?

4

1 回答 1

2

问题出在文件中vendor/magento/module-sales-rule/Model/ResourceModel/Rule.php

如果为空,则该方法setActualProductAttributes插入空。VALUES()$data

这可以通过覆盖模型和替换来解决

$connection->insertMultiple($this->getTable('salesrule_product_attribute'), $data);

和:

if(count($data > 0 )) {
    $connection->insertMultiple($this->getTable('salesrule_product_attribute'), $data);
}
于 2018-01-18T14:22:20.953 回答