Pular para o conteúdo

Criação

Criar a partir do host

Shell
wp rudel create --name=alpha --theme=twentytwentyfour

Rudel gera um ID a partir do nome mais quatro caracteres hexadecimais (por exemplo, alpha-3be7), clona as tabelas WordPress do host para um prefixo de tabela gerado, copia o tema selecionado para o diretório da sandbox e registra a sandbox no banco de dados WordPress do host. O siteurl e o home da sandbox mantêm o URL do host.

Se --theme for omitido, Rudel usa o tema ativo do site do host. O tema precisa estar instalado no host. Um tema filho também traz seu tema pai.

Cada tabela com o prefixo de tabela do host é copiada, incluindo users e usermeta, exceto as tabelas próprias de Rudel. Na versão atual, isso também inclui as tabelas das sandboxes já existentes, então cada nova sandbox é maior que a anterior. Consulte problema #3.

Criar a partir de outra sandbox

Shell
wp rudel create --name=feature-b --clone-from=alpha-3be7

A nova sandbox recebe uma cópia de cada tabela com o prefixo da sandbox de origem, incluindo as tabelas de instantâneos da origem, além do tema dela. Os diretórios de instantâneos não são copiados, então essas tabelas ficam sem uso na nova sandbox (problema #12). Quando o diretório do tema de origem é um repositório Git, Rudel cria uma árvore de trabalho vinculada na ramificação rudel/{new-id} em vez de uma cópia simples. O ID de origem é registrado no novo registro.

Metadados do ciclo de vida

As sandboxes podem conter metadados para limpeza e propriedade:

Shell
wp rudel create \
  --name=feature-a \
  --owner=dennis \
  --labels=agent,qa \
  --purpose="Test checkout changes" \
  --ttl-days=7

Use --protected quando a limpeza automática não deve remover a sandbox. Consulte Política.

Limites

A criação falha quando os limites definidos em max_sandboxes ou max_disk_mb são atingidos. O valor padrão de ambos é 0, que significa sem limite. Consulte Configuração.

Checkouts de Git

Shell
wp rudel create --name=feature-a --git=https://example.test/my-theme.git

Rudel cria o ambiente isolado, clona o repositório remoto em themes/my-theme dentro do diretório do ambiente e muda o checkout para o branch rudel/{id}. Adicione --type=plugin para clonar em plugins/my-theme. Se a clonagem falhar, o ambiente permanece e um aviso é exibido. Consulte Git para saber o que o ambiente serve a partir desse checkout.

Estrutura de diretórios

Text
wp-content/rudel-environments/{id}/
  themes/       copied theme, plus any Git checkout
  snapshots/    snapshot metadata and theme copies
  logs/ metadata/ tmp/
  wp-cli.yml
  debug.log     when debug logging is active