2013-05-27 1 views
4

그래서 모듈을 사용하여 설치 스크립트를 실행하려고합니다. /app/code/local/Sulman/Custompermissions/sql/mymodule_setup/install-1.0 (마 젠토 1.7) 나는이 내 모듈이 설치 스크립트Magento - 설치 스크립트가 실행되고 있지 않습니다 (그러나 core_resource에 올바르게 기록하십시오).

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Sulman_Custompermissions> 
      <version>1.0.0.0</version> 
     </Sulman_Custompermissions> 
    </modules> 

    <global> 
     <resources> 
      <mymodule_setup> 
       <setup> 
        <module>Sulman_Custompermissions</module> 
       </setup> 
      </mymodule_setup> 
     </resources> 
    </global> 
</config> 

이 내 파일 구조의 Config.xml입니다 있습니다. 내 설치 - 1.0.0.0.php 스크립트에서 다음 0.0.php

은 단순히이 실행 :

die('here'); 

문제는 설치 스크립트는 결코 (아무것도 사망 없음) 실행을 얻을 것 없다는 것입니다. 하지만 행이 core_resource 테이블에 올바르게 삽입되었습니다. 실마리가 있습니까? 감사합니다

(PS I 스크립트를 실행하기 전에이 제거 된 core_resource 테이블의 레코드가있는 경우)

+0

을 얼마나 설치 스크립트 워크 플로가 실행됩니까? – benmarks

+0

홈페이지를 새로 고침. – sulman

답변

4

모듈의 구성 XML이 병합되고 있으므로 (따라서 core_resource의 레코드에 기반하여) 포스트는 세 가지 가능성이있는 콘텐츠의 복사본입니다 :

  1. 파일 시스템 계층 구조 : 당신은 당신의 파일 이름, 폴더 또는 잘못된 폴더 구조
  2. 권한에 오타가 : PHP 수있는 파일
  3. 의하지 include() 내용
  4. 중복되는 config.xm이 있습니다. l은 다른 하위 디렉토리를 지정하며이 파일은 실제로 병합되지 않습니다.

솔루션 :

  1. 봐, 봐, /,
  2. 권한을 확인 보일 스크립트를 직접
  3. grep을 테스트 작업중인 파일의 구성 XML을 중단하고, 문제의 xpath에 대한 구성 XML을 덤프하십시오.

    echo Mage::getConfig()->getNode('modules/Sulman_Custompermissions/version'); 
    echo Mage::getConfig()->getNode('global/resources/mymodule_setup/setup/module'); 
    
+1

아! 당신이 옳았. 그것은 etc/modules/Sulman_Custompermissions.xml의 경우 문제였습니다. Magento는 여전히 겉으로는 무관계 한 어떤 것이 작동하도록하고 어떤 것들은 작동하지 않게 할 수 있다고 저를 놀라게합니다! 오 잘. 수업은 배웠다. 벤 감사합니다. – sulman

0

이 1.0.0.0

에 config.xml의 수정은
<global> 
    <resources> 
     <mymodule_setup> 
      <setup> 
       <module>Sulman_Custompermissions</module> 
      </setup> 
      <connection> 
       <use>core_setup</use> 
      </connection> 
     </mymodule_setup> 
    </resources> 
</global> 

및 0,123,999에 설치 스크립트 파일의 이름을 변경테이블에서 항목을 삭제하고 core_resource 테이블에서 항목을 삭제하고 캐시를 지우고 확인하십시오.

+2

* CE1.7에서는 * mysql4- * 접두어가 사용되지 않으며 연결이 필요하지 않습니다. – benmarks

+0

아, 좋은 점에 대해 감사의 표시가 있습니다. – MagentoDiary

0

config.xml이 sql 디렉토리에 표시된대로 모듈의 이름을 지정했는지 확인하십시오. 나를 위해, 나는 SQL-> customizations_setup을했고이 때문에 같은 문자가 대문자로 로컬 괜찮 았는데 :

<Customizations_setup> 
     <setup> 
     <module>AMI_Customizations</module> 
     <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class> 
     </setup> 
     <connection> 
     <use>core_setup</use> 
     </connection> 
    </Customizations_setup> 

을하지만 내 로컬 컴퓨터는 대소 문자를 구분하기 때문에 이것은 단지했다.내 생산 (리눅스) 서버는 대소 문자를 구분하며 core_resource 확인의 항목을 만들 것입니다,하지만 난 XML 그렇게처럼 내 디렉토리 이름과 일치했다 때까지 거기에서이 DB 항목을 만들 것입니다 :

<customizations_setup> 
     <setup> 
     <module>AMI_Customizations</module> 
     <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class> 
     </setup> 
     <connection> 
     <use>core_setup</use> 
     </connection> 
    </customizations_setup> 
관련 문제