
# Tilannevedokset

Tilannevedokset tallentavat hiekkalaatikon palautuspisteen.

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

Palauta tilannevedos:

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

`restore` pyytää vahvistuksen; `--force` ohittaa kehotteen. Tilannevedoksen nimi voi olla enintään 64 kirjainta, numeroa, pistettä, yhdysmerkkiä tai alaviivaa, ja sen on alettava kirjaimella tai numerolla.

Tilannevedokset on tarkoitettu hiekkalaatikon palautukseen, eivät ajonaikaiseen tunnistamiseen. Ympäristötietue säilyy hiekkalaatikon totuuden lähteenä.

## Mitä tilannevedokset tallentavat

- kaikki taulut, joissa on hiekkalaatikon etuliite, myös käyttäjät, kopioidaan samaan tietokantaan kohteen `{sandbox_prefix}snap_{hash}_` alle, esimerkiksi `wp_b65338d_snap_3ba676_options`
- hiekkalaatikon teemahakemisto kopioidaan hiekkalaatikkohakemistossa olevaan kohteeseen `snapshots/{name}/themes`
- kohteiden `snapshots/{name}/snapshot.json` ja `snapshots/{name}/db_snapshot.json` metatiedot

Tilannevedos maksaa siis kaikkien hiekkalaatikon taulujen täyden kopioinnin palvelimen tietokantaan sekä teematiedostojen kopioinnin.

## Mitä tilannevedokset eivät tallenna

- palvelimen WordPress-ydintä
- jaettuja lisäosatiedostoja
- jaettuja latauksia

## Palauttaminen

Palautus poistaa hiekkalaatikon taulut (säilyttäen tilannevedostaulut), kopioi tilannevedostaulut takaisin ja korvaa hiekkalaatikon teemahakemiston tallennetulla kopiolla.

Oletusarvoisesti Rudel tallentaa ensin nykyisen tilan tilannevedokseksi nimeltä `pre-restore-{timestamp}-{hash}`, jotta palautuksen voi kumota. Poista tämä käytöstä asettamalla `auto_snapshot_before_restore` arvoon `0` kohteessa `rudel_config`.

## Luettelointi ja poistaminen

Tilannevedosten luettelointiin tai poistamiseen ei ole CLI-komentoa. Komento `Rudel::snapshots( $id )` näyttää ne uusimmasta alkaen kohteessa PHP. Tilannevedostaulut poistetaan hiekkalaatikon tuhoamisen yhteydessä; siihen asti ne säilyvät, myös automaattiset `pre-restore-*`-vedokset ([ongelma #5](https://github.com/inline0/rudel/issues/5)).
