2011-04-14 4 views
0

"다시 색인화 프로세스에 문제가 있습니다."라는 오류가 나타납니다. Magento에서 Product Flat Data의 Reindex Data를 시도 할 때. Magento 1.4.1.1을 사용하며 데이터베이스에 50,000 개가 넘는 항목이 있습니다.납작한 제품 데이터를 다시 색인 할 때 오류가 발생했습니다.

이 문제를 해결하는 방법이 있습니까? 여기

내가 exception.log에서 무엇을 발견 오류입니다 :

2011-04-14T19:24:05+00:00 DEBUG (7): Exception message: SQLSTATE[HY000]: General error: 1005 Can't create table 'magentonou.catalog_product_flat_3' (errno: 150) 
Trace: #0 E:\Wamp\www\includes\src\__default.php(48621): Zend_Db_Statement_Pdo->_execute(Array) 
#1 E:\Wamp\www\includes\src\__default.php(40291): Zend_Db_Statement->execute(Array) 
#2 E:\Wamp\www\includes\src\__default.php(41312): Zend_Db_Adapter_Abstract->query('CREATE TABLE `c...', Array) 
#3 E:\Wamp\www\includes\src\__default.php(42062): Zend_Db_Adapter_Pdo_Abstract->query('CREATE TABLE `c...', Array) 
#4 E:\Wamp\www\includes\src\Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Flat_Indexer.php(544): Varien_Db_Adapter_Pdo_Mysql->query('CREATE TABLE `c...') 
#5 E:\Wamp\www\includes\src\Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Flat_Indexer.php(122): Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Flat_Indexer->prepareFlatTable('3') 
#6 E:\Wamp\www\includes\src\Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Flat_Indexer.php(115): Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Flat_Indexer->rebuild('3') 
#7 E:\Wamp\www\includes\src\Mage_Catalog_Model_Product_Flat_Indexer.php(64): Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Flat_Indexer->rebuild(NULL) 
#8 E:\Wamp\www\includes\src\Mage_Catalog_Model_Product_Indexer_Flat.php(301): Mage_Catalog_Model_Product_Flat_Indexer->rebuild() 
#9 E:\Wamp\www\includes\src\Mage_Index_Model_Process.php(139): Mage_Catalog_Model_Product_Indexer_Flat->reindexAll() 
#10 E:\Wamp\www\includes\src\Mage_Index_Model_Process.php(167): Mage_Index_Model_Process->reindexAll() 
#11 E:\Wamp\www\app\code\core\Mage\Index\controllers\Adminhtml\ProcessController.php(124): Mage_Index_Model_Process->reindexEverything() 
#12 E:\Wamp\www\includes\src\__default.php(11748): Mage_Index_Adminhtml_ProcessController->reindexProcessAction() 
#13 E:\Wamp\www\includes\src\__default.php(15669): Mage_Core_Controller_Varien_Action->dispatch('reindexProcess') 
#14 E:\Wamp\www\includes\src\__default.php(15271): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) 
#15 E:\Wamp\www\includes\src\__default.php(17470): Mage_Core_Controller_Varien_Front->dispatch() 
#16 E:\Wamp\www\app\Mage.php(596): Mage_Core_Model_App->run(Array) 
#17 E:\Wamp\www\index.php(80): Mage::run('', 'store') 
#18 {main} 
+1

무엇이 잘못되었는지에 대한 단서가 있는지'var/{system, exception} .log'를 확인 했습니까? – Nick

+0

예, 확실합니다. –

+0

.htaccess 파일에서'SetEnvIf Remote_Addr "을 \ .ip \ .address \ .fortest"MAGE_IS_DEVELOPER_MODE = 1 "로 설정하고"Developer -> Log Settings "관리 패널에서 로깅을 활성화하십시오. 그런 다음받은 오류로 질문을 업데이트하십시오. –

답변

0

난 당신이 Varien에서 다운로드 할 수있는 데이터베이스 복구 도구를 기억한다.

네, 확인해보십시오. 여전히 존재합니다 : Link

Magento 1.3.x에서 1 년 전에이 도구를 사용하여 성공적으로 데이터베이스를 복구 할 수있었습니다.

1.4.x에서 사용할 수 있다면 잘 모르겠습니다. 불행하게도이 도구를 사용할 수있는 버전은 명시하지 않습니다. 어쩌면 그것은 소스 코드에 언급되어 있습니다.

편집 :

의 MySQL은 CREATE TABLE 문에서 오류 번호 1005 를보고하고, 오류 메시지가 외래 키 제약 조건이 제대로하지 않았기 때문에 (150)는, 테이블 생성 실패 에러 참조하는 경우 형성되었다. 마찬가지로 ALTER TABLE이 실패하고 오류 150을 참조하면 외부 키 의 정의가 변경된 테이블에 대해 이 잘못 형성되었음을 의미합니다. SHOW ENGINE INNODB STATUS를 사용하여 서버에서 최근최근 InnoDB 외래 키 오류에 대한 자세한 설명 을 표시 할 수 있습니다.

출처 : dev.mysql.com

0

솔루션

는 catalog_eav_attribute 및 eav_attribute 테이블을 살펴보십시오. used_in_product_listing 필드를 1로 설정된 모든 사용자 정의 필드에 대해 0으로 갱신하십시오.이를 실행하기 전에 SELECT 절을 사용하여 해당 필드를 철회하십시오. 또한 테스트 환경에서 먼저 실행하십시오 !!

update `catalog_eav_attribute` as cea left join eav_attribute as ea on cea.attribute_id = ea.attribute_id set cea.used_in_product_listing = 0 where cea.used_in_product_listing = 1 and is_user_defined = 1 

... 고정 및 고정!

관련 문제