Ga naar de inhoud

Snapshots

Snapshots leggen een herstelpunt van een sandbox vast.

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

Een snapshot terugzetten:

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

restore vraagt om bevestiging; --force slaat de prompt over. Snapshotnamen mogen maximaal 64 letters, cijfers, punten, streepjes of underscores bevatten en moeten beginnen met een letter of cijfer.

Snapshots zijn bedoeld voor sandboxherstel, niet voor runtime-identiteit. De omgevingsrecord blijft de bron van waarheid voor de sandbox.

Wat snapshots vastleggen

  • elke tabel met de sandboxprefix, inclusief gebruikers, gekopieerd in dezelfde database onder {sandbox_prefix}snap_{hash}_, bijvoorbeeld wp_b65338d_snap_3ba676_options
  • de themamap van de sandbox, gekopieerd naar snapshots/{name}/themes in de sandboxmap
  • metadata in snapshots/{name}/snapshot.json en snapshots/{name}/db_snapshot.json

Een snapshot kost dus een volledige kopie van de sandboxtabellen in de hostdatabase plus een kopie van de themabestanden.

Wat snapshots niet vastleggen

  • de host-WordPress-core
  • gedeelde plug-inbestanden
  • gedeelde uploads

Herstellen

Bij het terugzetten worden de sandboxtabellen verwijderd (de snapshottabellen blijven behouden), worden de snapshottabellen teruggekopieerd en wordt de themamap van de sandbox vervangen door de opgeslagen kopie.

Standaard slaat Rudel eerst de huidige status op als snapshot met de naam pre-restore-{timestamp}-{hash}, zodat het terugzetten ongedaan kan worden gemaakt. Stel auto_snapshot_before_restore in rudel_config in op 0 om dit uit te schakelen.

Overzicht en verwijderen

Er is geen CLI-opdracht om snapshots weer te geven of te verwijderen. Vanuit PHP geeft Rudel::snapshots( $id ) ze weer, nieuwste eerst. Snapshottabellen worden verwijderd wanneer de sandbox wordt vernietigd; tot die tijd blijven ze bestaan, inclusief de automatische pre-restore-*-snapshots (probleem 5).