레일에있는 것처럼 데이터베이스를 "시드"할 수 있습니까? 이미지 개체 관리자와 함께 씨앗을 사용하여 제목별로 레코드를 얻을 수 있습니다.시드 실버 스트라이프 데이터베이스
답변
는 잉고의 대답에 남아있는 귀하의 의견을 바탕으로, 당신은 당신의 페이지 클래스에 requireDefaultRecords()
방법을 추가 할 수 있습니다.
아래는 최근 프로젝트에서 가져온 것으로 특정 사용자 그룹이 있음을 보장하지만 어떤 종류의 DataObject
(예 : Page
)으로도 동일하게 수행 할 수 있습니다. 당신이 빌드를 수행 할 때
public function requireDefaultRecords() {
// Make sure there is a readers security group
$group = Group::get('Group')->filter('Code', 'readers')
if (!$group->exists()) {
$group = Group::create(array('Title' => 'Readers'));
$group->write();
}
}
이 기능은 모든 DataObject
클래스에서 실행됩니다.
그게 바로 제가 한 일입니다. 고마워요! – jay
이 문맥에서 "씨앗"이 의미하는 바가 확실하지 않습니다. "data-generator" module은 ORM 열 유형에 대한 지식이있는 임의의 데이터를 씁니다.
"시드"로 기본 레코드를 추가하려고합니다. 그래서 데이터베이스가 구축되면 특정 레코드가 추가됩니다 (예 : 제목 : 배너 1, 링크 : "http://www.google.com") – jay
$defaults
배열을 설정하여 $db
변수의 기본값을 설정할 수 있습니다.
class Page extends SiteTree {
public static $db = array(
'Title' => 'Text',
'Description' => 'Text'
);
public static $defaults = array(
'Title' => 'Default Title',
'Description' => 'Default Description'
);
...
}
[은세공 인] (https://github.com/unclecheese/SilverSmith) 프로젝트를 살펴볼 수 있습니다. 코드 스카 폴딩 외에도 [콘텐츠 시딩] (https://github.com/unclecheese/SilverSmith#content-seeding) 및 [콘텐츠 채우기] (https://github.com/unclecheese/SilverSmith#content-population) 기능이 있습니다. . – ivoba
은세공 인은 시대에 뒤떨어져 (3.1로 포팅되지 않았습니다), 현재 유망한 것으로 보이는 시더 모듈이 있습니다 : https://github.com/Little-Giant/silverstripe-seeder. – wmk