Database Backup & Restore

Экспорт и восстановление коллекций Payload CMS в MongoDB как JSON из админки.

Сообщество 3 74/нед MIT v0.1.2

Установка

pnpm add @yairl/payload-db-backup-restore

Описание

Плагин добавляет экран резервного копирования и восстановления в админпанель Payload 3. Вы выбираете нужные коллекции из списка, нажимаете загрузку и получаете один JSON файл со всеми документами этих коллекций. Восстановление читает файл обратно и повторно вставляет записи. Экран доступен по адресу `/admin/backup`, по умолчанию добавляется ярлык в боковую панель. Файл записывается в формате EJSON, поэтому типы MongoDB, такие как `ObjectId`, `Date` и `Decimal128`, полностью сохраняют свои значения при экспорте и импорте, а не превращаются в обычные строки. Если у коллекции включены черновики, её сопутствующая коллекция `_<slug>_versions` экспортируется и восстанавливается вместе с основной коллекцией автоматически. Восстановление использует `insertMany` на уровне Mongoose, а не `payload.create`. Это сделано намеренно: хуки Payload, такие как `beforeChange` и `afterChange`, не запускаются. При массовом восстановлении не отрабатывают генераторы заголовков и не происходят тысячи вызовов revalidation. Поле `_id` каждого документа сохраняется точно таким же, как в резервной копии. Опция "drop before restore" включена по умолчанию и очищает целевую коллекцию перед восстановлением. Если её отключить, `insertMany` запускается с параметром `ordered: false`, и дубликаты `_id` вызывают ошибку только для конкретного документа, а остальные продолжают загружаться. Плагин работает только с MongoDB. Код обращается напрямую к `req.payload.db.collections` и `db.versions`, а адаптеры Postgres и SQLite не предоставляют аналогичный интерфейс. Резервное копирование не охватывает загруженные файлы на диске, глобальные настройки админки и внутренние системные коллекции Payload. Доступ по умолчанию проверяет `req.user.roles.includes('admin')`, что вы, вероятно, захотите изменить на `req => !!req.user`, если в коллекцию Users не добавлено поле `roles`. Три REST эндпоинта защищены той же проверкой доступа и позволяют автоматизировать резервное копирование вне админпанели.

О пакете

Имя пакета
@yairl/payload-db-backup-restore
Последняя версия
0.1.2
Размер
62 кБ
Лицензия
MIT
Загрузок в неделю
74
Последняя публикация
17 июл. 2026 г.

Ещё от ylahav

Профиль автора

onpage for TanStack Start

Подключает плагин payload-onpage к сайту на TanStack Start, чтобы редакторы правили контент и смотрели черновики прямо на странице.

On-Page Editing

Встраивает редактирование Payload-страниц прямо в Next.js-фронтенд, сохраняет правки как черновики и выдаёт ссылки для предпросмотра.

On-Page React Editor

Добавляет на React-страницы Payload визуальный редактор: тулбары, панели и редакторы полей поверх отрисованной страницы.

Collaborative Comments

Добавляет комментарии на уровне документов и полей в админку Payload, с упоминаниями, email-уведомлениями, разрешением, мультитенантностью и фильтрацией по локали.

Dub

Плагин для Payload CMS для автоматического создания и управления короткими ссылками с использованием Dub.

Visual Editing

Плагин для Payload CMS 3.x добавляет на фронтенд оверлеи редактирования: клик по элементу открывает нужное поле в админке.