Aanmaken
Aanmaken vanaf de host
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
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:
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
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
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