Snapshots
Snapshots speichern einen Wiederherstellungspunkt einer Sandbox.
wp rudel snapshot alpha-3be7 --name=before-test
Stelle einen Snapshot wieder her:
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 Beispielwp_b65338d_snap_3ba676_options - das Theme-Verzeichnis der Sandbox wird nach
snapshots/{name}/themesim Sandbox-Verzeichnis kopiert - Metadaten in
snapshots/{name}/snapshot.jsonundsnapshots/{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).