数据导入 Data import

使用 Strapi CLI 导入数据

v4.6.0 功能

Strapi 的 v4.6.0 及更新版本中提供数据导入功能。请参阅 更新和迁移文档 以升级您的应用程序。

strapi import 命令用于从文件导入数据。默认情况下,strapi import 命令从加密和压缩的 tar.gz.enc 文件导入数据,该文件包括:

  • 项目配置,
  • 实体:您的所有内容,
  • 链接:您的实体之间的关系,
  • 资产:存储在上传文件夹中的文件,
  • 模式,
  • metadata.json 文件。

以下文档详细介绍了自定义数据导入的可用选项。导入命令和所有可用选项均使用 Strapi CLI 运行。

  • strapi import 在导入备份文件之前删除所有现有数据,包括数据库和上传目录。
  • 源和目标架构必须匹配才能成功使用 strapi import,这意味着所有内容类型必须相同。
  • 恢复的数据不包括 Admin users 表,这意味着在恢复的实例中 createdByupdatedBy 为空。

指定导入文件

要将数据导入 Strapi 实例,请在项目根目录中使用 strapi import 命令。使用 -f--file 选项指定要导入的文件。文件名、扩展名和路径是必需的。如果文件已加密,则在导入开始之前会提示您输入加密密钥。

示例:从 Strapi 项目根目录中的文件导入数据的最小命令

bash
yarn
bash
yarn strapi import -f export_20221213105643.tar.gz.enc

提供加密密钥

如果您要从加密文件导入数据,可以使用 strapi import 命令通过 -k--key 选项传递加密密钥。

示例:使用 strapi import 命令传递加密密钥

bash
yarn
bash
yarn strapi import -f export_20221213105643.tar.gz.enc --key my-encryption-key

绕过所有命令行提示

使用 strapi import 命令时,您需要确认导入将删除现有数据库内容。--force 标志允许您绕过此提示。此选项对于以编程方式实现 strapi import 很有用。对于以编程方式使用,您还必须为加密文件传递 --key 选项。

--force 选项的示例

bash
yarn
bash
yarn strapi import -f export_20221213105643.tar.gz.enc --force --key my-encryption-key

导入期间排除数据类型

默认的 strapi import 命令会导入您的内容(实体和关系)、文件(资产)、项目配置和架构。--exclude 选项允许您通过将这些项目传递到逗号分隔的字符串中(类型之间没有空格)来排除内容、文件和项目配置。您无法排除架构,因为 strapi import 使用架构匹配。

从导入中排除的任何类型都将在您的目标实例中删除。例如,如果您排除 config,则目标实例中的项目配置将被删除。

图像等媒体由数据库中的文件(资产)和实体组成。如果您使用 --exclude 标志删除资产,则数据库记录仍包含在内,并且可能会呈现为断开的链接。

示例:从导入中排除资产

bash
yarn
bash
yarn strapi import -f export_20221213105643.tar.gz.enc --exclude files

导入时仅包含指定的数据类型

默认的 strapi import 命令会导入您的内容(实体和关系)、文件(资产)、项目配置和架构。--only 选项允许您通过传递逗号分隔的字符串(类型之间没有空格)来仅导出列出的项目。可用值为 contentfilesconfig。架构始终会被导入,因为 strapi import 使用架构匹配。

图像等媒体由数据库中的文件(资产)和实体组成。如果您使用 --only 标志导入 content,资产数据库记录仍会包含在内,并且可能会呈现为断开的链接。

示例:仅导入项目配置

bash
yarn
bash
yarn strapi import -f export_20221213105643.tar.gz.enc --only config