2012-08-12 2 views
2

SQLSTATE [42S02] : 기본 테이블 또는 뷰를 찾을 수 없음 : 1146 테이블 'desbest_full2.showdown_matches'새 마젠타 모듈을 사용한 후 : SQLSTATE [42S02] : 기본 테이블 또는 뷰를 찾을 수 없음 : 1146 테이블 XXX는

존재하지만 app/code/local/Desbest/Showdown/sql/Showdown_setup/mysql4-install-1.php

<?php 
echo 'Running This Upgrade: '.get_class($this)."\n <br /> \n"; die("Exit for now"); 

$installer = $this; 
/* @var $installer Mage_Catalog_Model_Resource_Eav_Mysql4_Setup */ 
$installer->startSetup(); 
$installer->run(" 

    CREATE TABLE {$this->getTable('showdown_matches')} (
    --CREATE TABLE IF NOT EXISTS `showdown_matches` (
     `id` int(11) NOT NULL AUTO_INCREMENT, 
     `firstproductid` int(11) NOT NULL, 
     `secondproductid` int(11) NOT NULL, 
     `title` varchar(255) NOT NULL, 
     `datenumber` varchar(10) NOT NULL, 
     PRIMARY KEY (`id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8_general_ci AUTO_INCREMENT=1 ; 

    CREATE TABLE IF NOT EXISTS `showdown_votes` (
     `id` int(11) NOT NULL AUTO_INCREMENT, 
     `matchid` int(11) NOT NULL, 
     `votedfor` varchar(10) NOT NULL, 
     `ip` varchar(50) NOT NULL, 
     `datenumber` varchar(10) NOT NULL, 
     PRIMARY KEY (`id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8_general_ci AUTO_INCREMENT=1 ; 



"); 
$installer->endSetup(); 

내부의 MySQL의 설치 스크립트를 가지고 있다면, 왜이 모듈은 내 원래 젠토 설치에서 일했다.

+0

안녕 desbest, config.xml은 어떻게 생겼습니까? – ivantedja

+0

여기 있습니다. https://gist.github.com/8a2da27d4f71834292f6 – desbest

+0

주석 처리 된 회선이 작동합니까? - 'showdown_matches'가 존재하지 않으면 테이블을 만듭니다. 페이지를 새로 고친 후에도 오류 메시지가 나타나면 해결 했습니까? 오류가 계속 발생합니까? 그런 경우라면, 'local.com/errors/report.php?id = ....'-> 그게 문제가되는 경우 귀하의 URL을보십시오. 그것은 정적 인 페이지입니다. 나는 당신의 코드에 nothings이 틀린 것을 발견했다. – ivantedja

답변

5

Magento는 이미 실행되었다고 생각하여 설정 스크립트가 실행되지 않고있을 수 있습니다. 모듈 버전으로 데이터베이스 테이블 core_resource에서 모듈에 대한 레코드를 확인할 수 있습니다. 이 리소스 레코드는 Magento가 모듈 설치 스크립트를 이미 실행했는지 또는 이전 버전에서 최신 버전으로 업그레이드 스크립트를 실행해야 하는지를 결정하는 방법입니다.

core_resource 테이블에서 모듈의 레코드를 삭제하면 다음에 Magento가 페이지를 생성 할 때 Magento가 설정 스크립트를 실행하려고 시도합니다.

설치 스크립트에서 die("Exit for now");을 제거해야 실제로 테이블을 생성하는 부분에 도달 할 것으로 예상됩니다. 설정 스크립트가 시작되어 die() 함수를 호출하고 해당 스크립트의 실행을 끝내면 core_resource 레코드가 만들어지고 설정 스크립트가 완료되었음을 나타내며 그 레코드를 제거하지 않으면 다시 실행하지 않을 것이라고 생각합니다. core_resource 테이블 Magento for Developers: Part 6 - Magento Setup Resources

당신은 또한 설치 스크립트의 파일 이름의 버전이 일치하는지 버전을 확인하기 위해 모듈 구성 XML 파일을 확인 수 있습니다

당신은 마 젠토 기술 자료의 설치 스크립트에 대한 몇 가지 정보를 찾을 수 있습니다.

<modules> 
    <Desbest_Showdown> 
     <version>1</version> 
    </Desbest_Showdown> 
</modules> 
<global> 
    <resources> 
     <showdown_setup> 
      <setup> 
       <module>Desbest_Showdown</module> 
      </setup> 
     </showdown_setup> 
    </resources> 
</global> 

제가 생각한 또 다른 사항은 파일/디렉토리 이름 대소 문자입니다. 당신이 대소 문자를 구분하지 않는 파일 시스템을 가지고있는 맥에 많은 것들을 설치했다면, 파일 시스템은 대소 문자를 구별하는 리눅스 박스로 파일을 옮긴다. 파일 이름을 app/code/local/Desbest/Showdown/sql/Showdown_setup/mysql4-install-1.php으로 지정 했으므로 디렉토리 Showdown_setup은 모두 소문자 인 showdown_setup 일 필요가 있습니다.

+0

대소 문자를 구별합니다. 대소 문자를 구별하는 문제에주의를 기울이는 것이 좋습니다. – ivantedja

+0

** 1 ** ** core_resource 내에 대결의 데이터베이스 행이 없습니다. ** 2. ** 플러그인을 만들 때'die()'가 있어야하므로 테스트 할 수 있습니다. 개인적인 경험으로, 아니, 그것은'core_resource' 데이터베이스 행을 만들지 않습니다. ** 3. **'sql/Showdown_setup'의 이름을'sql/showdown_setup'으로 바꿨습니다. 아무런 효과가 없었습니다. ** 4. **'config.xml' 안의 버전 번호와 mysql4-install-1.php 파일이 일치합니다. – desbest

+1

지금 문제가 무엇인지 알아 냈습니다. 그것은 폴더의 경우입니다. 'Showdown_setup'을'showdown_setup'으로 바꿨고 이제는 작동합니다! – desbest

1

비 실행 설치 리소스 스크립트 디버깅을위한 this question 단계가 있습니다.

관련 문제