Magento升级到v1.7失败,出现数据库错误

时间:2013-01-10 12:52:23

标签: magento magento-1.7 magento-1.4

我正在尝试将客户端Magento升级到v1.7(从v1.4开始)。我一路上有几个小小的昙花一现,但到目前为止还没什么可悲的。

我的升级路线是复制现有的v1.4数据库并安装1.7的新版本。然后运行标准升级脚本,数据库应升级到v1.7(当然除了升级后需要重新安装的任何已安装的扩展)。这是我之前使用过的路线,通过magento connect进行升级似乎更可靠。

然而,我碰到了一堵砖墙。我收到以下错误报告:

a:5:{i:0;s:464:"Error in file: "/route/to/magento/install/app/code/core/Mage/Cms/data/cms_setup/data-upgrade-1.6.0.0.0-1.6.0.0.1.php" - SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magento_1411_1702/cms_page_store`, CONSTRAINT `FK_CMS_PAGE_STORE_STORE_ID_CORE_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES `core_store` (`store_id`) ON DELETE CASCADE ON UPDATE CASCAD)";i:1;s:1095:"#0 /route/to/magento/install/app/code/core/Mage/Core/Model/Resource/Setup.php(645): Mage::exception('Mage_Core', 'Error in file: ...')

现在这告诉我cms_page_store中有一条记录,它有一个在相关表中找不到的store_id(在这种情况下,只有相关的表是core_store)。不是这种情况。在core_store中有一条记录,cms_page_store中没有条目,即使这没有破坏参照完整性,我也绝望地将其删除,但没有成功。

我还检查了其他相关表中的记录,但仍无法找到错误原因。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

当从1.4到1.7进行更新时,我必须在成功之前清空两个表。在此之前,我遇到了各种奇怪的错误。 我清空的表(未删除,仅清空)是: report_compared_product_index& report_viewed_product_index 如果这对您的情况有帮助,请尝试。

哦,我忘了,万一你想知道。这些表用于关于比较和查看产品的非必要统计数据。如果您依赖于过去的准确商店统计数据,那么您可能需要深入研究这个问题。

答案 1 :(得分:1)

试试吧

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

答案 2 :(得分:0)

您是否可以验证core_store中有一个admin_ store 0的管理存储?我遇到了类似的主要ID转移问题和升级脚本期间做出的一些假设。