2013-01-10 2 views
1

클라이언트 Magento를 v1.7 (v1.4에서)로 업그레이드하려고합니다. 길을 따라 가벼운 몇 번 보았지만, 지금까지는 너무 비극적 인 것이 없습니다.데이터베이스 오류로 Magento가 v1.7로 업그레이드하지 못했습니다.

내 업그레이드 경로는 기존 v1.4 데이터베이스를 복사하고 1.7의 새 버전을 설치하는 것입니다. 그런 다음 표준 업그레이드 스크립트를 실행하면 데이터베이스가 v1.7로 업그레이드되어야합니다 (업그레이드 후에 다시 설치해야하는 설치된 모든 확장을 제외). 이것은 이전에 사용한 적이 있었고 magento를 통해 업그레이드하는 것이 훨씬 안정적이라고 생각합니다.

그러나 벽돌 벽에 부딪 혔습니다. 나는 다음과 같은 오류 보고서 점점 오전 : 관련 테이블에서 찾을 수없는 STORE_ID가 cms_page_store의 레코드가 있다고

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: ...') 

지금이 나에게 추론을 (이 경우 유일한 관련된 테이블은 core_store입니다) . 그렇지 않다. cms_page_store에 항목이없는 core_store의 레코드가 있었으며 참조 무결성을 손상시키지 않았지만 필사적으로이를 제거했습니다.

다른 관련 테이블에서 레코드를 검사했지만 여전히 오류의 원인을 찾을 수 없습니다.

아이디어가 있으십니까?

+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

는 0을 STORE_ID있다 core_store에서 관리자 저장소를 가지고는

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; 
관련 문제