
# Migawki

Migawki zapisują punkt odzyskiwania piaskownicy.

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

Przywróć migawkę:

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

`restore` prosi o potwierdzenie; `--force` pomija monit. Nazwy migawek mogą mieć maksymalnie 64 litery, cyfry, kropki, myślniki lub podkreślenia, a ich pierwszy znak musi być literą lub cyfrą.

Migawki służą do odzyskiwania piaskownicy, a nie do określania jej tożsamości w środowisku uruchomieniowym. Źródłem prawdy dla piaskownicy pozostaje rekord środowiska.

## Co obejmują migawki

- każdą tabelę z prefiksem piaskownicy, łącznie z tabelami użytkowników, skopiowaną w tej samej bazie danych pod nazwą `{sandbox_prefix}snap_{hash}_`, na przykład `wp_b65338d_snap_3ba676_options`
- katalog motywu piaskownicy, skopiowany do `snapshots/{name}/themes` w katalogu piaskownicy
- metadane w `snapshots/{name}/snapshot.json` i `snapshots/{name}/db_snapshot.json`

Migawka wymaga więc pełnej kopii tabel piaskownicy w bazie danych hosta oraz kopii plików motywu.

## Czego migawki nie obejmują

- plików głównych hosta WordPress
- współdzielonych plików wtyczek
- współdzielonych przesłanych plików

## Przywracanie

Przywracanie usuwa tabele piaskownicy (zachowując tabele migawki), kopiuje tabele z migawki z powrotem i zastępuje katalog motywu piaskownicy zapisaną kopią.

Domyślnie Rudel najpierw zapisuje bieżący stan jako migawkę o nazwie `pre-restore-{timestamp}-{hash}`, dzięki czemu można cofnąć przywracanie. Ustaw `auto_snapshot_before_restore` na `0` w `rudel_config`, aby wyłączyć tę funkcję.

## Wyświetlanie i usuwanie

Nie ma polecenia CLI do wyświetlania ani usuwania migawek. Z poziomu PHP polecenie `Rudel::snapshots( $id )` wyświetla je od najnowszej. Tabele migawek są usuwane po zniszczeniu piaskownicy; do tego czasu pozostają, łącznie z automatycznymi migawkami `pre-restore-*` ([zgłoszenie nr 5](https://github.com/inline0/rudel/issues/5)).
