2012-03-25 2 views
0

eZPersistantObject가있는 eZPublish 확장을 코딩 중이므로 자체 데이터베이스 테이블이 필요합니다.eZ 게시 확장 설정 스크립트

setup.php 또는 확장 활성화를 실행하고 테이블을 생성하는 종류의 것을 제공 할 수있는 방법이 있습니까?

답장을 보내 주셔서 감사합니다.

답변

0

CMS에 확장 프로그램을 설치할 때와 같이 데이터베이스 변경 작업을 수동으로 수행해야합니다. http://doc.ez.no/eZ-Publish/Technical-manual/4.x/Installation/Extensions을 참조하십시오. 따라서 eZPublish가 이러한 종류의 설정을 지원하지 않는다고 생각합니다.

각 요청마다 CREATE TABLE IF NOT EXISTS처럼 수동으로 할 수 있습니다. 더러운 해결책 : 확장 폴더에 어딘가에 setup.php을 놓고 쓰기 가능으로 만들고 첫 번째 실행 후 간단히 제거하십시오. setup.php 끝에 unlink(__FILE__);을 추가하십시오.

일부 클리너 솔루션을 원하면 데이터베이스 마이그레이션 스크립트가있는 디렉토리와 해당 스크립트 중 어떤 스크립트가 실행되었는지 추적하는 테이블을 보유 할 수 있습니다. 각 요청에서 새 이주 스크립트가 있는지 점검하고 필요한 경우 실행하십시오.

2

eZ Publish는 확장 기능을 설치할 때 이러한 기능을 제공하지 않습니다 (데이터베이스에서 내용을 변경해야 할 필요가 있다고 말하는 것은 사실이 아니며 자동로드 재생성 만 필요합니다).

문제는 귀하의 확장 프로그램에 .dba 파일을 추가하여 관리자 인터페이스에서 시스템 검사/업그레이드를 사용할 때 선택되도록하는 것입니다. 이 파일은 bin/php의 ezsqldumpschema.php 스크립트를 사용하여 생성 할 수 있습니다 (charset 같은 몇 가지 사항이 누락되어 있음을 알 수 있습니다 ...)

확장 프로그램에서 관리 인터페이스를 제공하는 경우 언제든지 각보기의 스크립트 시작 부분에 일종의 pre_check 함수를 추가하십시오. dba 파일에 대한 테이블 존재 여부를 확인하고 필요할 경우 생성 (또는 사용자에게 프롬프트)해야합니다.