前段时间我将Magento商店1.4.2.0升级到1.5.1.0版,升级过程还可以。我有一些错误/错误,并希望将Magento升级到1.6.0.0,因为它现在是一个稳定版本。
我下载了magento 1.6并使用旧数据库跟踪安装过程。在我输入数据库访问数据的屏幕之后,我收到了Magento报告。它说:
“文件错误: “/home/italo/www/mage_powershop/app/code/core/Mage/Customer/sql/customer_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php” - SQLSTATE [23000]:完整性约束违规:1062重复 键'son_id'的输入'0'“
我还尝试在新数据库中安装magento 1.6.0.0,然后从旧数据库导入数据,但我遇到了同样的问题。 (实际上,几乎相同,因为密钥不是'son_id',但它总是会改变......)新数据库中的安装运行正常。我尝试使用Magento修复数据库工具,但它返回了一个错误。
有人可以帮我解决这个问题吗?
答案 0 :(得分:3)
我得到了这个工作!
我刚刚禁用了外键和唯一检查。在/app/etc/config.xml文件中,我从以下位置更改了initStatements节点:
<initStatements>SET NAMES utf8</initStatements>
为:
<initStatements>SET NAMES utf8; SET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0;</initStatements>
答案 1 :(得分:0)
问题在于您的数据存储在表格中。 在Magento表中没有名称为“son_id”的索引。也许任何自定义模块都会向Magento核心表添加一些字段并添加新索引。在这种情况下,您无法自动升级。
查找名为“son_id”的索引表并查看此字段中的数据。也许您可以将此数据修改为唯一值以进行升级...