2013-01-10 54 views
1

我正在嘗試將客戶端Magento升級到v1.7(從v1.4開始)。一路上我已經有了一些小小的瑕疵,但沒有什麼太悲慘的......直到現在。Magento升級到v1.7因數據庫錯誤而失敗

我的升級路線是複製現有的v1.4數據庫並安裝新版本的1.7。然後運行標準升級腳本,數據庫應該升級到v1.7(當然,除了升級後需要重新安裝的任何已安裝的擴展程序之外)。這是我之前使用的一條路線,似乎通過magento連接升級更可靠。

但是,我撞到了一堵磚牆。我收到以下錯誤報告:

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中沒有條目,即使這並沒有破壞參照完整性,但我已絕望地將其刪除,但沒有成功。

我也檢查了其他直接相關的表中的記錄,仍然找不到錯誤的原因。

任何想法?

+0

你能確認你有core_store管理員店已經STORE_ID 0?我遇到了主鍵ID轉移和升級腳本期間做出的一些假設的類似問題。 –

+0

我有 - 這是我第一次遇到這些問題時刪除的商店條目。謝天謝地,這是一次試運行,所以它的簡單程度足以恢復 –

+0

好了,恢復了core_store中管理員商店的條目 - 但是這次我給它的值爲website_id和group_id,它們在適當的表中有相關​​記錄(兩者都是以前的0)和中提琴!如果您想將您的回覆作爲答案,我會將其標記爲已接受 - 非常感謝! –

回答

0

您可以驗證您是否擁有store_id爲0的core_store中的管理存儲?我遇到了主鍵ID轉移和升級腳本期間做出的一些假設的類似問題。

+0

對於設置store_id 0檢查我下面的評論 –

1

當從1.4更新到1.7時,我必須在成功之前清空兩個表。在此之前,我有各種奇怪的錯誤。 我清空(未刪除,只清空)的表格有: report_compared_product_index & report_viewed_product_index 請嘗試是否對您的情況也有幫助。

哦,我忘了,萬一你想知道。這些表格用於比較和查看產品的非必要統計數據。如果您依賴於過去的準確商店統計數據,那麼您可能需要深入研究這個問題。

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;