Восстановление автономного сайта
Как восстановить данные и медиа автономного сайта собственными инструментами провайдера. У Dee Wan нет сервиса резервного копирования. Команда проекта не проверяла эти действия на работающем развёртывании. Сначала отработайте их на временной копии, прежде чем полагаться на них при восстановлении.
Команды Wrangler ниже принадлежат Cloudflare. Они сверены 2026-09-23 со справочниками команд Wrangler для D1 и R2, руководством по импорту и экспорту D1 и справочником D1 Time Travel. Сам этот репозиторий запускает только wrangler d1 export (scripts/d1.ts).
Что восстанавливать
Заголовок раздела «Что восстанавливать»| Часть | Где хранится | Чем восстанавливается |
|---|---|---|
| Код | Ваш репозиторий | Git. Нужную версию определяет коммит. |
| Генерируемые строки контента | Генерируемые таблицы в вашей БД D1 | Повторная загрузка снимка из коммита (npm run data:load) или восстановление БД |
| Ваши собственные строки | Ваши таблицы в той же БД D1 | Только восстановление БД |
| Медиа | Ваш бакет R2, если вы взяли медиа под своё управление | Ваша собственная копия объектов |
| Секреты | Секреты вашего репозитория и секреты Worker | Ваше хранилище секретов. Никогда не в файле резервной копии. |
Откат кода в настройках не восстанавливает ни строки, ни медиа из этой таблицы.
Создание резервной копии
Заголовок раздела «Создание резервной копии»Сначала остановите всё, что изменяет данные: ваши фоновые задачи и развёртывания сайта, запускаемые из CMS.
Экспортируйте БД в файл:
npx wrangler d1 export <database-name> --remote --output backup-<date>.sqlВо время экспорта другие запросы к БД блокируются, а БД с виртуальными таблицами Cloudflare не экспортирует. Числовые значения преобразуются в числа JavaScript, поэтому целые числа, которым требуется более 52 бит точности, могут измениться.
Запишите развёрнутый коммит репозитория, время экспорта и контрольную сумму файла. Для медиа скопируйте из бакета каждый объект, ключ которого указан в data/media-manifest.json, например командой npx wrangler r2 object get <bucket>/<key> --remote --file <path>. Храните копии вне бакета.
Сначала восстановление в изоляции
Заголовок раздела «Сначала восстановление в изоляции»Создайте новую БД и загрузите в неё экспорт:
npx wrangler d1 create <restore-database-name>npx wrangler d1 execute <restore-database-name> --remote --file backup-<date>.sqlСгенерированный проект определяет БД по своей конфигурации. В проекте нет команды для переключения на восстановленную копию. Создайте отдельную конфигурацию Worker для тестовой среды и укажите в ней восстановленную БД, разверните в ней записанный коммит, затем проверьте его с API_BEARER_TOKEN в окружении:
npm run verify:deployment -- --origin 'https://restore.example.com' --expect-commit <full-commit-sha>npm run verify:mediaverify:deployment сравнивает развёрнутый контент со снимком из коммита. verify:media проверяет ссылки на медиа в проекциях, сохранённых в коммите. Сами файлы эта команда не скачивает. Характерные страницы и медиа откройте сами.
Восстановление БД D1 на момент времени
Заголовок раздела «Восстановление БД D1 на момент времени»Cloudflare D1 Time Travel восстанавливает БД на месте к более раннему моменту: до 30 дней назад на тарифе Workers Paid и до 7 дней на тарифе Workers Free. --timestamp принимает Unix timestamp или время RFC 3339 с часовым поясом. --bookmark принимает закладку, которую печатает info.
npx wrangler d1 time-travel info <database-name>npx wrangler d1 time-travel restore <database-name> --timestamp <time>Это перезаписывает живую БД, включая ваши собственные таблицы, и отменяет выполняющиеся запросы. Сначала сделайте экспорт. Восстановленная схема может быть старше развёрнутого кода. Прежде чем направлять на неё запросы, проверьте, что миграции развёрнутого коммита соответствуют восстановленной БД.
Восстановление медиа
Заголовок раздела «Восстановление медиа»Верните скопированные объекты под теми же ключами командой npx wrangler r2 object put <bucket>/<key> --remote --file <path>. Пока CMS ещё хранит медиа, npm run backend:deliver с --media переносит её текущие публичные медиа в рамках полной генерации и публикации. Медиа, которых в CMS уже нет, он вернуть не может.
Переключение
Заголовок раздела «Переключение»Только после того как изолированная копия прошла проверку, переключите на неё рабочую среду или повторите восстановление в рабочей среде. Сохраняйте старую БД до приёмки результата владельцем. Возобновляйте процессы, изменяющие данные, в последнюю очередь.
См. также: откат и восстановление, резервное копирование и восстановление CMS, руководство по отделению.
Следующий шаг
Заголовок раздела «Следующий шаг»Маршруты, аутентификация и поведение развёртывания описаны в справочнике API.
Стабильная версия ещё не выпущена (pre-MVP)
Коммит исходного кода: fe23db481c422b40e317b92fc98116b4c0c26a87 (с локальными изменениями)
Дата сборки (UTC): 2026-10-18T09:22:34.630Z
Коммит для обновления: не определён: в рабочей копии есть изменения. Примечания к выпуску