Erstellen
Auf dem Host erstellen
wp rudel create --name=alpha --theme=twentytwentyfour
Rudel generiert aus dem Namen und vier Hexadezimalzeichen eine ID (zum Beispiel alpha-3be7), klont die Tabellen des Host-WordPress in ein generiertes Tabellenpräfix, kopiert das ausgewählte Theme in das Sandbox-Verzeichnis und speichert die Sandbox in der Host-WordPress-Datenbank. siteurl und home der Sandbox behalten die URL des Hosts.
Wenn --theme weggelassen wird, verwendet Rudel das aktive Theme der Host-Website. Das Theme muss auf dem Host installiert sein. Bei einem Child-Theme wird auch das übergeordnete Theme übernommen.
Jede Tabelle mit dem Tabellenpräfix des Hosts wird kopiert, einschließlich users und usermeta, außer den eigenen Tabellen von Rudel. In der aktuellen Version umfasst das auch die Tabellen bereits vorhandener Sandboxes, sodass jede neue Sandbox größer ist als die vorherige. Siehe Issue #3.
Aus einer anderen Sandbox erstellen
wp rudel create --name=feature-b --clone-from=alpha-3be7
Die neue Sandbox erhält eine Kopie jeder Tabelle mit dem Präfix der Quell-Sandbox, einschließlich ihrer Snapshot-Tabellen, sowie ihres Themes. Snapshot-Verzeichnisse werden nicht kopiert, daher bleiben diese Tabellen in der neuen Sandbox ungenutzt (Issue #12). Wenn das Theme-Verzeichnis der Quelle ein Git-Repository ist, erstellt Rudel einen verknüpften Worktree auf dem Branch rudel/{new-id} statt einer einfachen Kopie. Die Quell-ID wird im neuen Datensatz gespeichert.
Lebenszyklus-Metadaten
Sandboxes können Metadaten für Bereinigung und Zuständigkeit enthalten:
wp rudel create \
--name=feature-a \
--owner=dennis \
--labels=agent,qa \
--purpose="Test checkout changes" \
--ttl-days=7
Verwende --protected, wenn die automatische Bereinigung die Sandbox nicht entfernen darf. Siehe Richtlinie.
Limits
Die Erstellung schlägt fehl, sobald die Einstellung max_sandboxes oder max_disk_mb erreicht ist. Beide sind standardmäßig auf 0 gesetzt, was unbegrenzt bedeutet. Siehe Konfiguration.
Git-Checkouts
wp rudel create --name=feature-a --git=https://example.test/my-theme.git
Rudel erstellt die Sandbox, klont das Remote-Repository nach themes/my-theme im Sandbox-Verzeichnis und wechselt im Checkout zum Branch rudel/{id}. Mit --type=plugin wird stattdessen nach plugins/my-theme geklont. Bei einem fehlgeschlagenen Klon bleibt die Sandbox bestehen und es wird eine Warnung ausgegeben. Unter Git erfährst du, was die Sandbox aus diesem Checkout bereitstellt.
Verzeichnisstruktur
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