Zum Inhalt springen

Snapshots

Snapshots speichern einen Wiederherstellungspunkt einer Sandbox.

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

Stelle einen Snapshot wieder her:

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

restore fordert eine Bestätigung an; --force überspringt die Abfrage. Snapshot-Namen dürfen bis zu 64 Buchstaben, Ziffern, Punkte, Bindestriche oder Unterstriche enthalten und müssen mit einem Buchstaben oder einer Ziffer beginnen.

Snapshots dienen der Wiederherstellung einer Sandbox, nicht ihrer Laufzeitidentität. Der Umgebungsdatensatz bleibt die maßgebliche Quelle für die Sandbox.

Was Snapshots erfassen

  • jede Tabelle mit dem Sandbox-Präfix, einschließlich Benutzer, wird in derselben Datenbank unter {sandbox_prefix}snap_{hash}_ kopiert, zum Beispiel wp_b65338d_snap_3ba676_options
  • das Theme-Verzeichnis der Sandbox wird nach snapshots/{name}/themes im Sandbox-Verzeichnis kopiert
  • Metadaten in snapshots/{name}/snapshot.json und snapshots/{name}/db_snapshot.json

Ein Snapshot benötigt daher eine vollständige Kopie der Sandbox-Tabellen in der Host-Datenbank sowie eine Kopie der Theme-Dateien.

Was Snapshots nicht erfassen

  • den Host-WordPress-Core
  • gemeinsam genutzte Plugin-Dateien
  • gemeinsam genutzte Uploads

Restore

Beim Wiederherstellen werden die Sandbox-Tabellen gelöscht (Snapshot-Tabellen bleiben erhalten), die Snapshot-Tabellen zurückkopiert und das Theme-Verzeichnis der Sandbox durch die gespeicherte Kopie ersetzt.

Standardmäßig speichert Rudel zuerst den aktuellen Zustand in einem Snapshot namens pre-restore-{timestamp}-{hash}, damit sich eine Wiederherstellung rückgängig machen lässt. Setze auto_snapshot_before_restore in rudel_config auf 0, um diese Funktion zu deaktivieren.

Auflisten und Entfernen

Es gibt keinen CLI-Befehl zum Auflisten oder Löschen von Snapshots. Über PHP listet Rudel::snapshots( $id ) sie auf, beginnend mit dem neuesten. Beim Löschen der Sandbox werden die Snapshot-Tabellen gelöscht; bis dahin bleiben sie erhalten, einschließlich der automatisch erstellten Snapshots pre-restore-* (Issue #5).