
# Создание

## Создание с хоста

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

Rudel создает ID из имени и четырех шестнадцатеричных символов (например, `alpha-3be7`), клонирует таблицы WordPress хоста с сгенерированным префиксом таблиц, копирует выбранную тему в каталог песочницы и записывает ее в базу данных WordPress хоста. Параметры `siteurl` и `home` песочницы сохраняют URL хоста.

Если `--theme` не указан, Rudel использует активную тему сайта хоста. Тема должна быть установлена на хосте. Дочерняя тема также включает родительскую.

Копируются все таблицы с префиксом таблиц хоста, включая `users` и `usermeta`, кроме собственных таблиц Rudel. В текущем выпуске это также включает таблицы уже существующих песочниц, поэтому каждая новая песочница больше предыдущей. См. [проблему #3](https://github.com/inline0/rudel/issues/3).

## Создание из другой песочницы

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

Новая песочница получает копии всех таблиц с префиксом исходной песочницы, включая таблицы ее снимков, а также ее тему. Каталоги снимков не копируются, поэтому эти таблицы не используются в новой песочнице ([проблема #12](https://github.com/inline0/rudel/issues/12)). Если каталог темы источника является репозиторием Git, Rudel создает связанное рабочее дерево для ветки `rudel/{new-id}` вместо обычной копии. ID источника записывается в новую запись.

## Метаданные жизненного цикла

Песочницы могут содержать метаданные для очистки и указания владельца:

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

Используйте `--protected`, если автоматическая очистка не должна удалять песочницу. См. [Политика](https://rudel.inline0.dev/ru/docs/features/policy).

## Ограничения

Создание завершается ошибкой при достижении настроек `max_sandboxes` или `max_disk_mb`. По умолчанию для обоих задано `0`, то есть ограничения отсутствуют. См. [Конфигурация](https://rudel.inline0.dev/ru/docs/configuration).

## Рабочие копии Git

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

Rudel создает песочницу, клонирует удаленный репозиторий в `themes/my-theme` внутри каталога песочницы и переключает рабочую копию на ветку `rudel/{id}`. Добавьте `--type=plugin`, чтобы клонировать репозиторий в `plugins/my-theme`. Если клонирование не удается, песочница остается на месте, а команда выводит предупреждение. См. [Git](https://rudel.inline0.dev/ru/docs/features/git), чтобы узнать, что песочница предоставляет из этой рабочей копии.

## Структура каталогов

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