
# Snapshots

Snapshots gemmer et gendannelsespunkt for en sandbox.

```bash
wp rudel snapshot alpha-3be7 --name=before-test
```

Gendan et snapshot:

```bash
wp rudel restore alpha-3be7 --snapshot=before-test
```

`restore` beder om bekræftelse; `--force` springer prompten over. Snapshotnavne må være op til 64 bogstaver, tal, punktummer, bindestreger eller understregninger og skal begynde med et bogstav eller et tal.

Snapshots bruges til gendannelse af sandboxes, ikke til runtime-identitet. Miljøposten er fortsat kilden til sandkassens identitet.

## Hvad snapshots indeholder

- alle tabeller med sandboxpræfikset, inklusive brugere, kopieres i samme database under `{sandbox_prefix}snap_{hash}_`, for eksempel `wp_b65338d_snap_3ba676_options`
- sandboxens temamappe kopieres til `snapshots/{name}/themes` i sandboxmappen
- metadata i `snapshots/{name}/snapshot.json` og `snapshots/{name}/db_snapshot.json`

Et snapshot kræver derfor en fuld kopi af sandboxens tabeller i værtsdatabasen samt en kopi af temafilerne.

## Hvad snapshots ikke indeholder

- værtens WordPress-kerne
- delte pluginfiler
- delte uploads

## Gendan

Ved gendannelse slettes sandboxens tabeller (snapshot-tabellerne bevares), snapshot-tabellerne kopieres tilbage, og sandboxens temamappe erstattes med den gemte kopi.

Som standard gemmer Rudel først den aktuelle tilstand som et snapshot med navnet `pre-restore-{timestamp}-{hash}`, så en gendannelse kan fortrydes. Angiv `auto_snapshot_before_restore` til `0` i `rudel_config` for at slå dette fra.

## Visning og fjernelse

Der findes ingen CLI-kommando til at vise eller slette snapshots. Fra PHP viser `Rudel::snapshots( $id )` dem, nyeste først. Snapshot-tabeller slettes, når sandboxen ødelægges; indtil da bevares de, også de automatiske `pre-restore-*`-snapshots ([issue #5](https://github.com/inline0/rudel/issues/5)).
