Pular para o conteúdo

Snapshots

Os snapshots registram um ponto de recuperação do sandbox.

Shell
wp rudel snapshot alpha-3be7 --name=before-test

Restaure um snapshot:

Shell
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 exemplo wp_b65338d_snap_3ba676_options
  • o diretório do tema do sandbox, copiado para snapshots/{name}/themes no diretório do sandbox
  • metadados em snapshots/{name}/snapshot.json e snapshots/{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).