INTEGRITY Документация

Time Travel и резервное копирование

Time Travel представляет собой подход D1 к резервному копированию и восстановлению на определённый момент времени и позволяет восстановить базу данных на любую минуту за последние 30 дней.

Не завися от плановых или запускаемых вручную резервных копий, вы можете вернуться назад во времени и восстановить базу данных до неудачной миграции или изменения схемы, DELETE или UPDATE оператор без указания конкретного WHERE предложение, а в будущем можно будет напрямую создавать форк или копию рабочей базы данных.

Bookmarks

Time Travel использует концепцию D1 под названием bookmark чтобы восстановить состояние на определённый момент времени.

Bookmark также используются Sessions API чтобы обеспечить последовательную согласованность в рамках Session.

Временные метки

Time Travel поддерживает два формата временных меток:

Требования

Получение bookmark

Bookmark для текущей временной метки можно получить, вызвав d1 info команду, которая по умолчанию возвращает текущий bookmark:

wrangler d1 time-travel info YOUR_DATABASE
🚧 Time Traveling...
⚠️ The current bookmark is '00000085-0000024c-00004c6d-8e61117bf38d7adb71b934ebbf891683'
⚡️ To restore to this specific bookmark, run:
 `wrangler d1 time-travel restore YOUR_DATABASE --bookmark=00000085-0000024c-00004c6d-8e61117bf38d7adb71b934ebbf891683`

Чтобы получить bookmark для временной метки в прошлом, передайте --timestamp флаг с корректной временной меткой в формате Unix или RFC3339:

С использованием временной метки RFC3339, включая часовой пояс
wrangler d1 time-travel info YOUR_DATABASE --timestamp="2023-07-09T17:31:11+00:00"

Восстановление базы данных

Чтобы восстановить базу данных на определённый момент времени:

wrangler d1 time-travel restore YOUR_DATABASE --timestamp=UNIX_TIMESTAMP
🚧 Restoring database YOUR_DATABASE from bookmark 00000080-ffffffff-00004c60-390376cb1c4dd679b74a19d19f5ca5be

⚠️ This will overwrite all data in database YOUR_DATABASE.
In-flight queries and transactions will be cancelled.

✔ OK to proceed (y/N) … yes
⚡️ Time travel in progress...
✅ Database YOUR_DATABASE restored back to bookmark 00000080-ffffffff-00004c60-390376cb1c4dd679b74a19d19f5ca5be

↩️ To undo this operation, you can restore to the previous bookmark: 00000085-ffffffff-00004c6d-2510c8b03a2eb2c48b2422bb3b33fad5

Учтите:

Отмена восстановления

Отменить восстановление можно, выполнив следующее:

Чтобы получить bookmark из более раннего состояния:

wrangler d1 time-travel info YOUR_DATABASE
🚧 Time Traveling...
⚠️ The current bookmark is '00000085-0000024c-00004c6d-8e61117bf38d7adb71b934ebbf891683'
⚡️ To restore to this specific bookmark, run:
 `wrangler d1 time-travel restore YOUR_DATABASE --bookmark=00000085-0000024c-00004c6d-8e61117bf38d7adb71b934ebbf891683`

Экспорт D1 в R2 с помощью Workflows

Базу данных D1 можно автоматически экспортировать в хранилище R2 через REST API и Cloudflare Workflows. Это может быть полезно, если вы хотите хранить состояние базы данных D1 дольше 30 дней.

См. руководство Экспорт и сохранение базы данных D1.

Примечания