Database Backup & Restore
Экспорт и восстановление коллекций Payload CMS в MongoDB как JSON из админки.
Установка
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 добавляет на фронтенд оверлеи редактирования: клик по элементу открывает нужное поле в админке.