스냅샷
스냅샷은 샌드박스의 복구 지점을 저장합니다.
셸
wp rudel snapshot alpha-3be7 --name=before-test
스냅샷 복원:
셸
wp rudel restore alpha-3be7 --snapshot=before-test
restore은 확인을 요청하고, --force은 확인 절차를 건너뜁니다. 스냅샷 이름은 최대 64자의 영문자, 숫자, 마침표, 대시 또는 밑줄로 구성되며, 영문자나 숫자로 시작해야 합니다.
스냅샷은 샌드박스 복구용이며 런타임 ID를 위한 것이 아닙니다. 환경 기록은 샌드박스의 단일 진실 공급원으로 유지됩니다.
스냅샷에 포함되는 항목
- 샌드박스 접두사가 붙은 모든 테이블(사용자 포함)을 같은 데이터베이스의
{sandbox_prefix}snap_{hash}_아래에 복사합니다(예:wp_b65338d_snap_3ba676_options) - 샌드박스 테마 디렉터리를 샌드박스 디렉터리의
snapshots/{name}/themes에 복사합니다 snapshots/{name}/snapshot.json및snapshots/{name}/db_snapshot.json의 메타데이터
따라서 스냅샷을 만들려면 호스트 데이터베이스의 샌드박스 테이블 전체와 테마 파일의 사본이 필요합니다.
스냅샷에 포함되지 않는 항목
- 호스트 WordPress 코어
- 공유 플러그인 파일
- 공유 업로드 파일
복원
복원하면 스냅샷 테이블은 유지한 채 샌드박스 테이블을 삭제하고, 스냅샷 테이블을 다시 복사한 다음 저장된 사본으로 샌드박스 테마 디렉터리를 교체합니다.
기본적으로 Rudel은 현재 상태를 pre-restore-{timestamp}-{hash}이라는 이름의 스냅샷으로 먼저 저장하므로 복원을 되돌릴 수 있습니다. 이 기능을 끄려면 rudel_config에서 auto_snapshot_before_restore를 0으로 설정하세요.
목록 보기 및 제거
스냅샷 목록 조회 또는 삭제를 위한 CLI 명령은 없습니다. PHP에서 Rudel::snapshots( $id )를 실행하면 최신 항목부터 목록이 표시됩니다. 샌드박스를 제거하면 스냅샷 테이블도 삭제됩니다. 그전까지는 자동 생성된 pre-restore-* 스냅샷을 포함해 계속 유지됩니다(이슈 #5).