2015-01-02 1 views
0

사용자 지정 확장에 새 테이블을 만들려고합니다. 테이블이 생성되지 않았거나 오류가 발생했습니다. 로컬/Pfay/Test/sql/Test_setup/mysql4-install-0.1.0.php에 'mysql4-install-0.1.php'파일이 있습니다.Magento 확장으로 MySQL 테이블을 만드는 방법은 무엇입니까?

$installer = $this; 
$installer->startSetup(); 
$installer->run(" 
    DROP TABLE IF EXISTS {$this->getTable('Test')}; 
    CREATE TABLE {$this->getTable('Test')} (
     `pfay_test_id` int(11) unsigned NOT NULL auto_increment, 
     `full_name` varchar(255) NULL , 
     `email` varchar(255) NULL , 
     `question` text NULL , 
     `product_id` int(11) NULL default '', 
     PRIMARY KEY (`question_id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
     "); 
    $installer->endSetup(); 

이 내가 해결책을 찾기 위해 노력하고 5 시간 보내고 있지만 성공하지 못했습니다 지역/Pfay/테스트/등 /의 Config.xml

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Pfay_Test> 
      <version>0.1.0</version> 
     </Pfay_Test> 
    </modules> 
    <frontend> 
     <routers> 
      <routeurfrontend> 
       <use>standard</use> 
       <args> 
        <module>Pfay_Test</module> 
        <frontName>test</frontName> 
       </args> 
      </routeurfrontend> 
     </routers> 
     <layout> 
      <updates> 
       <test> 
        <file>test.xml</file> 
       </test> 
      </updates> 
     </layout> 
    </frontend> 
    <admin> 
     <routers> 
      <test> 
       <use>admin</use> 
       <args> 
        <module>Pfay_Test</module> 
        <frontName>admintest</frontName> 
       </args> 
      </test> 
     </routers> 
    </admin> 
    <adminhtml> 
     <layout> 
      <updates> 
       <test> 
        <file>test.xml</file> 
       </test> 
      </updates> 
     </layout> 
     <menu> 
      <test translate="title" module="adminhtml"> 
       <title>Question Answer</title> 
       <sort_order>100</sort_order> 
       <children> 
        <set_time> 
         <title>Question</title> 
         <action>admintest/adminhtml_index</action> 
        </set_time> 
       </children> 
      </test> 
     </menu> 
    </adminhtml> 
    <global> 
     <models> 
      <test> 
       <class>Pfay_Test_Model</class> 
       <resourceModel>test_mysql4</resourceModel> 
      </test> 
      <test_mysql4> 
       <class>Pfay_Test_Model_Mysql4</class> 
       <entities> 
        <test> 
         <table>qs_question</table> 
        </test> 
       </entities> 
      </test_mysql4> 
     </models> 
     <resources> 
      <Test_setup> 
       <setup> 
        <module>Pfay_Test</module> 
       </setup> 
       <connection> 
        <use>core_setup</use> 
       </connection> 
      </Test_setup> 
      <Test_write> 
       <connection> 
        <use>core_write</use> 
       </connection> 
      </Test_write> 
      <Test_read> 
       <connection> 
        <use>core_read</use> 
       </connection> 
      </Test_read> 
     </resources> 
     <blocks> 
      <test> 
       <class>Pfay_Test_Block</class> 
      </test> 
     </blocks>   
    </global> 
</config> 

안에 내 '의 Config.xml'파일입니다. 'core_resource'테이블에 'test_setup'을 삽입하고 있지만 테이블을 만들지는 않습니다. 제발 방법을 제안하십시오. 미리 감사드립니다.

답변

0

파일 이름 'mysql4-install-0.1.php'에 실수가 있다고 생각합니다. 'mysql4-install-0.1.0.php'여야합니다.

+0

aton 'mysql4-install-0.1.0.php'로 변경되었지만 작동하지 않았습니다. –

+0

실행이 SQL 파일 내에 도달하는지 확인하십시오. 죽게 ('여기'); $ installer-> startSetup();을 실행 한 다음 페이지를 새로 고칩니다. 또한이 파일에 대해 잘 모르지만 폴더 "Test_setup"이 "test_setup"이어야합니다. 먼저 확인하십시오 – aton1004

+0

또한 config.xml 파일에서 ?? 필수 사항입니까? – aton1004

0

모듈이 이미 설치되어 있습니다. 설치 스크립트가 실행되지 않는 이유입니다. 그것은 magento에서 처음으로 실행됩니다. 이벤트를 UN 설치하십시오. 그래서 여기에 업데이트 스크립트가 필요할 수도 있습니다.

당신은 1.0.0.0

<global> 
<resources> 
    <mymodule_setup> 
     <setup> 
      <module>Sulman_Custompermissions</module> 
     </setup> 
     <connection> 
      <use>core_setup</use> 
     </connection> 
    </mymodule_setup> 
</resources> 

에 config.xml 파일을 수정 모듈 의 버전을 변경하고 mysql4 설치-1.0.0.0.php를 위해 설치 스크립트 파일의 이름을 변경할 수 있으며, core_resource 테이블에서 항목을 삭제하고 캐시를 지우고 확인하십시오 ...

+0

1.1.0으로 변경하고 core_resource에서 test_setup을 삭제합니다. 그러나 그것은 효과가 없었습니다. –

+0

그런 다음 설치 파일을 복사하고 이름을 mysql4-upgrade-1.0.0.0-1.1.0.php로 바꾸고 config 버전은 1.1.0이어야합니다 –

관련 문제