Перейти к содержимому
Версия 1.0 ещё не выпущена; проект находится на стадии pre-MVP. См. возможности и ограничения версии 1.0.

Восстановление автономного сайта

Как восстановить данные и медиа автономного сайта собственными инструментами провайдера. У 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:media

verify:deployment сравнивает развёрнутый контент со снимком из коммита. verify:media проверяет ссылки на медиа в проекциях, сохранённых в коммите. Сами файлы эта команда не скачивает. Характерные страницы и медиа откройте сами.

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
Коммит для обновления: не определён: в рабочей копии есть изменения. Примечания к выпуску