Snapshots
Os snapshots registram um ponto de recuperação do sandbox.
wp rudel snapshot alpha-3be7 --name=before-test
Restaure um snapshot:
wp rudel restore alpha-3be7 --snapshot=before-test
restore pede confirmação; --force ignora a solicitação. Os nomes dos snapshots podem ter até 64 letras, números, pontos, hífens ou sublinhados, e devem começar com uma letra ou número.
Os snapshots servem para recuperar sandboxes, não para definir a identidade em tempo de execução. O registro do ambiente continua sendo a fonte de verdade do sandbox.
O que os snapshots capturam
- todas as tabelas com o prefixo do sandbox, incluindo usuários, copiadas no mesmo banco de dados em
{sandbox_prefix}snap_{hash}_, por exemplowp_b65338d_snap_3ba676_options - o diretório do tema do sandbox, copiado para
snapshots/{name}/themesno diretório do sandbox - metadados em
snapshots/{name}/snapshot.jsonesnapshots/{name}/db_snapshot.json
Portanto, um snapshot custa uma cópia completa das tabelas do sandbox no banco de dados do host, além de uma cópia dos arquivos do tema.
O que os snapshots não capturam
- o núcleo do WordPress do host
- arquivos de plugins compartilhados
- arquivos de uploads compartilhados
Restaurar
Uma restauração exclui as tabelas do sandbox (mantendo as tabelas do snapshot), copia as tabelas do snapshot de volta e substitui o diretório do tema do sandbox pela cópia salva.
Por padrão, Rudel salva primeiro o estado atual como um snapshot chamado pre-restore-{timestamp}-{hash}, permitindo desfazer uma restauração. Defina auto_snapshot_before_restore como 0 em rudel_config para desativar essa opção.
Listar e remover
Não há um comando CLI para listar ou excluir snapshots. Em PHP, Rudel::snapshots( $id ) os lista, começando pelos mais recentes. As tabelas dos snapshots são removidas quando o sandbox é destruído; até lá, permanecem, inclusive as criadas automaticamente em pre-restore-* (issue #5).