2012-03-02 3 views
3

drupal6에서 drupal 7으로 모듈을 변환하려고합니다. 이것이 제 코드입니다. 데이터베이스 테이블이 작성되지 않았습니다.Drupal7 .install 스크립트가 작동하지 않습니다.

function example_install() { 
    drupal_install_schema('example'); 
} 
/** 
* Implements hook_schema(). 
*/ 
function example_schema() { 
    $schema['example'] = array(
    'description' => 'example settings', 
    'fields' => array(
     'name' => array(
     'description' => 'name', 
     'type' => 'varchar', 
     'length' => '255', 
     'not null' => TRUE, 
    ), 

     'age' => array(
     'description' => 'age', 
     'type' => 'int', 
    'size' => 'tiny', 
     'not null' => TRUE, 
    ), 
) , 
); 
    return $schema; 
} 

아무도 설명을 잘못 할 수 있습니까?

+0

? 이걸 실행할 때 아무 일도 일어나지 않아? – ManseUK

+0

아니요, 모듈이 활성화되었다고 말하면됩니다. – Ramesh

답변

8

drupal_install_schema() 자신을 Drupal 7에서 실행하고 싶지 않은 경우 hook_schema()이 .install 파일에 있으면 자동으로 호출됩니다. 아마도 몇 가지 문제가 발생할 수 있지만 테이블을 적어도 한 번 이상 만들 수는 있습니다.

hook_install()을 제거한 후에는 모듈을 제거 (사용 중지하는 것이 아니라) 한 다음 다시 사용하도록 설정하십시오. 모듈을 쉽게 다시 설치할 수있는 페이지 (devel/reinstall)를 제공하므로이 작업을 수행하려면 Devel module을 사용하는 것이 좋습니다.

모듈 페이지로 이동하여 모듈을 비활성화 한 다음 맨 위에있는 '제거'탭을 클릭하여 완전히 제거하십시오. 그런 다음 모듈 페이지로 돌아가서 다시 활성화하십시오.

이렇게하면 Drupal이 hook_schema() 스크립트를 다시 실행하게하고 테이블을 만들어야합니다.

+0

Thnx sooo much ... 그것은 효과가 있습니다! 나는 1 시간 동안 이와 같이 붙어 있었다! thnx again ... –

+0

이 게시물은 내가이 인스턴스에서 잘못된 인덱스를 나타내는 데이터베이스를 만들려고했기 때문에 도움이되었습니다. 테이블은 단순히 생성되지 않았고 디버깅 출력이 무엇이 잘못되었는지 확인하지 못했습니다. 마지막으로 '색인'을 수정하고 제거를 수행하면 많은 일이 재현됩니다. –

관련 문제