nocobase/packages/plugins/@nocobase/plugin-backup-restore/README.md
ChengLei Shao fa97d0a642
feat: application backup and restore (#3268)
* fix: perform load action on boot main app

* feat: add dataType option in collection duplicator

* chore: reset optional dumpable config

* chore: dump command

* chore: dump & restore command

* chore: delay restore

* fix: dump test

* chore: restore command

* chore: dump command action

* chore: dumpable collection api

* chore: client collection option

* feat: backup& restore client

* chore: content disposition header in dump response

* chore: download backup field

* feat: collection origin option

* fix: test

* chore: collection manager collection origin

* chore: upload  backup field

* chore: upload restore file

* chore: upload restore file

* fix: test

* chore: backup and restore support learn more

* refactor: upload restore file

* refactor: upload restore file

* fix: test

* fix: test

* chore: dumpable collection with title

* chore: pg only test

* chore: test

* fix: test

* chore: test sleep

* style: locale improve

* refactor: download backup file

* refactor: start restore

* fix: restore key name

* refactor: start restore

* refactor: start restore

* refactor: start restore

* refactor: start restore

* refactor: start restore

* refactor: start restore

* chore: unify duplicator option

* fix: dump empty collection

* chore: test

* chore: test

* style: style improve

* refactor: locale improve

* chore: dumpalbe collection orders

* style: style improve

* style: style improve

* style: icon adjust

* chore: nginx body size

* chore: get file status

* feat: run dump task

* feat: download api

* chore: backup files resourcer

* feat: restore destroy api

* chore: backup files resoucer

* feat: list backup files action

* chore: get collection meta from dumped file

* fix: dump file name

* fix: test

* chore: backup and restore ui

* chore: swagger api for backup & restore

* chore: api doc

* chore: api doc

* chore: api doc

* chore: backup and restore ui

* chore: backup and restore ui

* chore: backup and restore ui

* chore: backup and restore ui

* chore: backup and restore ui

* fix: restore values

* style: style improve

* fix: download field respontype

* fix: restore form local file

* refactor: local improve

* refactor: delete backup file

* fix: in progress status

* refactor: locale improve

* refactor: locale improve

* refactor: style improve

* refactor: style improve

* refactor: style improve

* test: dump collection table attribute

* chore: dump collection with table attributes

* chore: test

* chore: create new table in restore

* fix: import error

* chore: restore table from backup file

* chore: sync collection after restore collections

* fix: restore json data

* style: style improve

* chore: restore with fields

* chore: test

* fix: test

* fix: test with underscored

* style: style improve

* fix: lock file state

* chore: add test file

* refactor: backup & restore plugin

* fix: mysql test

* chore: skip import view collection

* chore: restore collection with inherits topo order

* fix: import

* style: style improve

* fix: restore sequence fields

* fix: themeConfig collection duplicator option

* fix: restore with dialectOnly meta

* fix: throw error

* fix: restore

* fix: import backup file created in postgres into mysql

* fix: repeated items in inherits

* chore: upgrade after restore

* feat: check database env before restore

* feat: handle autoincr val in postgres

* chore: sqlite & mysql queryInterface

* chore: test

* fix: test

* chore: test

* fix: build

* fix: pg test

* fix: restore with date field

* chore: theme-config collection

* chore: chage import collections method to support collection origin

* chore: fallback get autoincr value in mysql

* fix: dataType normalize

* chore: delay restore

* chore: test

* fix: build

* feat: collectin onDump

* feat: collection onDump interface

* chore: dump with view collection

* chore: sync in restore

* refactor: locale improve

* refactor: code improve

* fix: test

* fix: data sync

* chore: rename backup & restore plugin

* chore: skip test

* style: style improve

* style: style improve

* style: style improve

* style: style improve

* chore: import version check

* chore: backup file dir

* chore: build

* fix: bugs

* fix: error

* fix: pageSize

* fix: import origin

* fix: improve code

* fix: remove namespace

* chore: dump rules config

* fix: dump custom collection

* chore: version

* fix: test

* fix: test

* fix: test

* fix: test

* chore: test

* fix: load custom collection

* fix: client

* fix: translation

* chore: code

* fix: bug

* fix:  support shared option

* fix: roles collection dumpRules

* chore: test

* fix: define collections

* chore: collection group

* fix: translation

* fix: translation

* fix: restore options

* chore: restore command

* chore: dump error

* fix: too many open files

---------

Co-authored-by: katherinehhh <katherine_15995@163.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
2024-01-08 18:59:56 +08:00

119 lines
3.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Duplicator
English | [中文](./README.zh-CN.md)
NocoBase 应用的备份与还原插件,可用于应用的复制、迁移、升级等场景。
## 安装激活
内置插件无需手动安装激活。
## 使用方法
Duplicator 插件提供了 `dump``restore` 命令,分别用于备份和还原应用数据,可用于单应用的备份和还原,也可以跨应用。如果跨应用还原数据,请保证目标应用 NocoBase 版本与源应用一致,相对应插件也已下载本地。
**⚠️ 如果使用了继承PostgreSQL、视图、触发器等不兼容的特性跨数据库还原备份数据可能失败。**
### 备份数据
```bash
yarn nocobase dump
```
选择需要备份的插件表结构及其数据
```bash
? Select the plugin collections to be dumped (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
== Required ==
- migration (core) (Disabled)
- collections (collection-manager) (Disabled)
- uiSchemas (ui-schema-storage) (Disabled)
- uiRoutes (ui-routes-storage) (Disabled)
- acl (acl) (Disabled)
- workflowConfig (workflow) (Disabled)
- snapshot-field (snapshot-field) (Disabled)
- sequences (sequence-field) (Disabled)
== Optional ==
❯◉ executionLogs (workflow)
◉ users (users)
◉ storageSetting (file-manager)
◉ attachmentRecords (file-manager)
◉ systemSettings (system-settings)
◉ verificationProviders (verification)
◉ verificationData (verification)
◉ oidcProviders (oidc)
◉ samlProviders (saml)
◉ mapConfiguration (map)
(Move up and down to reveal more choices)
```
选择需要备份的其他数据表的记录
```bash
? Select the collection records to be dumped (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◉ Test1
❯◉ Test2
❯◉ Test3
```
数据备份成功之后,备份文件位于 `storage/duplicator` 目录下:
```bash
dumped to /your/apps/a/storage/duplicator/dump-20230210T223910.nbdump
dumped file size: 20.8 kB
```
### 还原数据
```bash
yarn nocobase restore /your/apps/a/storage/duplicator/dump-20230210T223910.nbdump
```
导入前请先备份数据
```bash
? Danger !!! This action will overwrite your current data, please make sure you have a backup❗ (y/N)
```
选择需要还原的插件表结构及其数据
```bash
? Select the plugin collections to be restored (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
== Required ==
- migration (core) (Disabled)
- collections (collection-manager) (Disabled)
- uiSchemas (ui-schema-storage) (Disabled)
- uiRoutes (ui-routes-storage) (Disabled)
- acl (acl) (Disabled)
- workflowConfig (workflow) (Disabled)
- sequences (sequence-field) (Disabled)
== Optional ==
❯◯ executionLogs (workflow)
◯ users (users)
◯ storageSetting (file-manager)
◯ attachmentRecords (file-manager)
◯ systemSettings (system-settings)
◯ verificationProviders (verification)
◯ verificationData (verification)
◯ auditLogs (audit-logs)
◯ iframe html storage (iframe-block)
```
选择需要还原的其他数据表的记录
```bash
? Select the collection records to be restored (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◉ Test1
❯◉ Test2
❯◉ Test3
```
成功之后,重启应用
```bash
# for development
yarn dev
# for production
yarn start
```