1

我正在尝试将客户端 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 中没有条目,即使这没有破坏参照完整性,我还是绝望地删除了它,但没有成功。

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

有任何想法吗?

4

3 回答 3

1

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

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

于 2013-01-10T13:16:27.360 回答
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;
于 2015-07-31T07:54:53.870 回答
0

您能否验证您在 core_store 中有一个 store_id 为 0 的管理存储?我遇到了与主键 ID 变化和升级脚本期间做出的一些假设类似的问题。

于 2013-01-10T13:38:56.183 回答