Ga naar de inhoud

Aanmaken

Aanmaken vanaf de host

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

Rudel genereert een ID op basis van de naam plus vier hexadecimale tekens (bijvoorbeeld alpha-3be7), kloont de host-WordPress-tabellen naar een gegenereerd tabelvoorvoegsel, kopieert het geselecteerde thema naar de sandboxmap en registreert de sandbox in de WordPress-database van de host. De siteurl en home van de sandbox behouden de URL van de host.

Als --theme wordt weggelaten, gebruikt Rudel het actieve thema van de hostsite. Het thema moet op de host zijn geïnstalleerd. Een child-thema neemt het bovenliggende thema mee.

Elke tabel met het tabelvoorvoegsel van de host wordt gekopieerd, inclusief users en usermeta, behalve de eigen tabellen van Rudel. In de huidige release omvat dit ook de tabellen van bestaande sandboxes, zodat elke nieuwe sandbox groter is dan de vorige. Zie issue #3.

Aanmaken vanuit een andere sandbox

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

De nieuwe sandbox krijgt een kopie van elke tabel met het voorvoegsel van de bronsandbox, inclusief de momentopnametabellen van de bron, en het thema ervan. Momentopnamemappen worden niet gekopieerd, dus die tabellen worden niet gebruikt in de nieuwe sandbox (issue #12). Wanneer de themamap van de bron een Git-repository is, maakt Rudel een gekoppelde worktree aan op de branch rudel/{new-id} in plaats van een gewone kopie. De bron-ID wordt in het nieuwe record opgeslagen.

Levenscyclusmetadata

Sandboxes kunnen metadata bevatten voor opruiming en eigenaarschap:

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

Gebruik --protected wanneer automatische opruiming de sandbox niet mag verwijderen. Zie Beleid.

Limieten

Het aanmaken mislukt wanneer de instellingen max_sandboxes of max_disk_mb zijn bereikt. Beide zijn standaard ingesteld op 0, wat betekent dat er geen limiet geldt. Zie Configuratie.

Git-checkouts

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

Rudel maakt de sandbox aan, kloont de remote naar themes/my-theme in de sandboxmap en schakelt de checkout over naar branch rudel/{id}. Voeg --type=plugin toe om in plaats daarvan naar plugins/my-theme te klonen. Bij een mislukte kloon blijft de sandbox bestaan en wordt er een waarschuwing weergegeven. Zie Git voor wat de sandbox vanuit die checkout serveert.

Mapstructuur

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