
# Vytváranie

## Vytvorenie z hostiteľského prostredia

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

Rudel vygeneruje ID z názvu a štyroch hexadecimálnych znakov (napríklad `alpha-3be7`), naklonuje tabuľky hostiteľského prostredia WordPress pod vygenerovaný prefix tabuliek, skopíruje vybranú tému do adresára sandboxu a zaznamená sandbox v databáze hostiteľského prostredia WordPress. Hodnoty `siteurl` a `home` sandboxu si zachovajú hostiteľské URL.

Ak vynecháte `--theme`, Rudel použije aktívnu tému webu hostiteľského prostredia. Téma musí byť na hostiteľskom prostredí nainštalovaná. Spolu s podriadenou témou sa skopíruje aj jej nadradená téma.

Skopíruje sa každá tabuľka s prefixom tabuliek hostiteľského prostredia vrátane `users` a `usermeta`, okrem vlastných tabuliek Rudel. V aktuálnom vydaní to zahŕňa aj tabuľky už existujúcich sandboxov, takže každý nový sandbox je väčší než predchádzajúci. Pozrite si [vydanie č. 3](https://github.com/inline0/rudel/issues/3).

## Vytvorenie z iného sandboxu

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

Nový sandbox dostane kópiu každej tabuľky s prefixom zdrojového sandboxu vrátane tabuliek jeho snímok a jeho tému. Adresáre snímok sa nekopírujú, preto sa tieto tabuľky v novom sandboxe nepoužívajú ([vydanie č. 12](https://github.com/inline0/rudel/issues/12)). Ak je adresár témy zdrojového sandboxu repozitár Git, Rudel vytvorí prepojený pracovný strom vo vetve `rudel/{new-id}` namiesto obyčajnej kópie. ID zdroja sa uloží do nového záznamu.

## Metadáta životného cyklu

Sandboxy môžu obsahovať metadáta pre čistenie a vlastníctvo:

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

Použite `--protected`, ak automatizované čistenie nesmie sandbox odstrániť. Pozrite si časť [Politika](https://rudel.inline0.dev/sk/docs/features/policy).

## Limity

Vytváranie zlyhá, keď sa dosiahne nastavenie `max_sandboxes` alebo `max_disk_mb`. Predvolené hodnoty oboch sú `0`, čo znamená, že limit nie je nastavený. Pozrite si časť [Konfigurácia](https://rudel.inline0.dev/sk/docs/configuration).

## Checkouty Git

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

Rudel vytvorí sandbox, naklonuje vzdialený repozitár do `themes/my-theme` v adresári sandboxu a prepne checkout na vetvu `rudel/{id}`. Ak chcete klonovať do `plugins/my-theme`, pridajte `--type=plugin`. Neúspešné klonovanie ponechá sandbox vytvorený a zobrazí upozornenie. Informácie o tom, čo sandbox z tohto checkoutu poskytuje, nájdete v časti [Git](https://rudel.inline0.dev/sk/docs/features/git).

## Štruktúra adresárov

```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
```
