
# Snapshot

Gli snapshot acquisiscono un punto di ripristino della sandbox.

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

Ripristinate uno snapshot:

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

`restore` chiede conferma; `--force` salta la richiesta. I nomi degli snapshot possono contenere fino a 64 lettere, cifre, punti, trattini o trattini bassi e devono iniziare con una lettera o una cifra.

Gli snapshot servono a ripristinare una sandbox, non la sua identità di runtime. Il record dell’ambiente resta la fonte attendibile per la sandbox.

## Cosa includono gli snapshot

- ogni tabella con il prefisso della sandbox, inclusi gli utenti, copiata nello stesso database sotto `{sandbox_prefix}snap_{hash}_`, per esempio `wp_b65338d_snap_3ba676_options`
- la directory del tema della sandbox, copiata in `snapshots/{name}/themes` nella directory della sandbox
- i metadati in `snapshots/{name}/snapshot.json` e `snapshots/{name}/db_snapshot.json`

Uno snapshot richiede quindi una copia completa delle tabelle della sandbox nel database dell’host e una copia dei file del tema.

## Cosa non includono gli snapshot

- il nucleo di WordPress dell’host
- i file dei plugin condivisi
- i caricamenti condivisi

## Ripristino

Il ripristino elimina le tabelle della sandbox, mantenendo quelle dello snapshot, ricopia le tabelle dello snapshot e sostituisce la directory del tema della sandbox con la copia salvata.

Per impostazione predefinita, Rudel salva prima lo stato corrente in uno snapshot chiamato `pre-restore-{timestamp}-{hash}`, così è possibile annullare il ripristino. Impostate `auto_snapshot_before_restore` su `0` in `rudel_config` per disattivare questa funzione.

## Elencare e rimuovere

Non esiste un comando CLI per elencare o eliminare gli snapshot. Da PHP, `Rudel::snapshots( $id )` li elenca dal più recente. Le tabelle degli snapshot vengono eliminate quando si distrugge la sandbox; fino ad allora restano, incluse quelle automatiche di `pre-restore-*` ([problema n. 5](https://github.com/inline0/rudel/issues/5)).
