
# Tworzenie

## Tworzenie z hosta

```bash
wp rudel create --name=alpha --theme=twentytwentyfour
```

Rudel generuje identyfikator na podstawie nazwy i czterech znaków szesnastkowych (na przykład `alpha-3be7`), klonuje tabele hosta WordPress do wygenerowanego prefiksu tabel, kopiuje wybrany motyw do katalogu piaskownicy i zapisuje piaskownicę w bazie danych hosta WordPress. Wartości `siteurl` i `home` piaskownicy zachowują URL hosta.

Jeśli pominięto `--theme`, Rudel używa aktywnego motywu witryny hosta. Motyw musi być zainstalowany na hoście. Motyw potomny przenosi ze sobą motyw nadrzędny.

Kopiowana jest każda tabela z prefiksem tabel hosta, w tym `users` i `usermeta`, z wyjątkiem własnych tabel Rudel. W bieżącym wydaniu obejmuje to również tabele już istniejących piaskownic, dlatego każda nowa piaskownica jest większa od poprzedniej. Zobacz [zgłoszenie nr 3](https://github.com/inline0/rudel/issues/3).

## Tworzenie z innej piaskownicy

```bash
wp rudel create --name=feature-b --clone-from=alpha-3be7
```

Nowa piaskownica otrzymuje kopię każdej tabeli z prefiksem źródłowej piaskownicy, w tym tabel zrzutów źródła, oraz jego motyw. Katalogi zrzutów nie są kopiowane, więc te tabele pozostają niewykorzystane w nowej piaskownicy ([zgłoszenie nr 12](https://github.com/inline0/rudel/issues/12)). Jeśli katalog motywu źródła jest repozytorium Git, Rudel tworzy powiązane drzewo robocze na gałęzi `rudel/{new-id}` zamiast zwykłej kopii. Identyfikator źródła jest zapisywany w nowym rekordzie.

## Metadane cyklu życia

Piaskownice mogą przechowywać metadane dotyczące czyszczenia i własności:

```bash
wp rudel create \
  --name=feature-a \
  --owner=dennis \
  --labels=agent,qa \
  --purpose="Test checkout changes" \
  --ttl-days=7
```

Użyj `--protected`, gdy automatyczne czyszczenie nie może usuwać piaskownicy. Zobacz [Zasady](https://rudel.inline0.dev/pl/docs/features/policy).

## Limity

Tworzenie nie powiedzie się po osiągnięciu ustawienia `max_sandboxes` lub `max_disk_mb`. Wartość domyślna obu to `0`, co oznacza brak limitu. Zobacz [Konfiguracja](https://rudel.inline0.dev/pl/docs/configuration).

## Katalogi robocze Git

```bash
wp rudel create --name=feature-a --git=https://example.test/my-theme.git
```

Rudel tworzy piaskownicę, klonuje zdalne repozytorium do `themes/my-theme` w jej katalogu i przełącza katalog roboczy na gałąź `rudel/{id}`. Dodaj `--type=plugin`, aby klonować do `plugins/my-theme`. Nieudane klonowanie pozostawia piaskownicę i wyświetla ostrzeżenie. Zobacz [Git](https://rudel.inline0.dev/pl/docs/features/git), aby dowiedzieć się, co piaskownica udostępnia z tego katalogu roboczego.

## Układ katalogów

```text
wp-content/rudel-environments/{id}/
  themes/       copied theme, plus any Git checkout
  snapshots/    snapshot metadata and theme copies
  logs/ metadata/ tmp/
  wp-cli.yml
  debug.log     when debug logging is active
```
