数据导入
¥Data import
4.6.0This feature requires Strapi version 4.6.0 or later.strapi import
命令是 数据管理功能 的一部分,用于从文件导入数据。默认情况下,strapi import
命令从加密和压缩的 tar.gz.enc
文件导入数据,其中包括:
¥The strapi import
command is part of the Data Management feature and used to import data from a file. By default, the strapi import
command imports data from an encrypted and compressed tar.gz.enc
file which includes:
-
项目配置,
¥the project configuration,
-
实体:你的所有内容,
¥entities: all of your content,
-
链接:你的实体之间的关系,
¥links: relations between your entities,
-
资源:文件存储在上传文件夹中,
¥assets: files stored in the uploads folder,
-
模式,
¥schemas,
-
metadata.json
文件。¥the
metadata.json
file.
该存档遵循与 strapi export
生成的存档相同的结构:.tar
包含 configuration
、entities
、links
和 schemas
文件夹,其中包含按编号排列的 JSON 行 文件。压缩 (.gz
) 和加密 (.enc
) 会从文件扩展名中检测出来,因此也可以导入纯文本 .tar
。
¥The archive follows the same structure as the one produced by strapi export
: a .tar
containing configuration
, entities
, links
, and schemas
folders filled with numbered JSON lines files. Compression (.gz
) and encryption (.enc
) are detected from the file extension, so a plain .tar
can be imported as well.
以下文档详细介绍了自定义数据导入的可用选项。导入命令和所有可用选项均使用 Strapi CLI 运行。
¥The following documentation details the available options to customize your data import. The import command and all of the available options are run using the Strapi CLI.
-
strapi import
在导入备份文件之前删除所有现有数据,包括数据库和上传目录。¥
strapi import
deletes all existing data, including the database and uploads directory, before importing the backup file. -
源架构和目标架构必须匹配才能成功使用
strapi import
,这意味着所有内容类型必须相同。¥The source and target schemas must match to successfully use
strapi import
, meaning all content types must be identical. -
恢复的数据不包括
Admin users
表,这意味着恢复的实例中createdBy
和updatedBy
为空。¥Restored data does not include the
Admin users
table, which means thatcreatedBy
andupdatedBy
are empty in a restored instance.
了解导入存档
¥Understand the import archive
strapi import
期望存档具有与 strapi export
命令 生成的相同扁平结构:
¥strapi import
expects an archive with the same flat structure produced by the strapi export
command:
-
configuration/
:项目配置文件¥
configuration/
: project configuration files -
entities/
:实体记录¥
entities/
: entity records -
links/
:实体间关系¥
links/
: relations between entities -
schemas/
:模式定义¥
schemas/
: schema definitions -
metadata.json
:导出元数据¥
metadata.json
: metadata about the export
每个文件夹包含一个或多个 .jsonl
文件,其中每一行代表一条记录。该格式允许你在重新导入数据之前编辑或转换数据。
¥Each folder contains one or more .jsonl
files where each line represents a single record. The format allows you to edit or transform data before re‑importing it.
要准备存档以供手动审核或修改:
¥To prepare an archive for manual review or modification:
- Yarn
- NPM
yarn strapi export --no-encrypt --no-compress -f my-export
tar -xf my-export.tar
npm run strapi export -- --no-encrypt --no-compress -f my-export
tar -xf my-export.tar
调整 .jsonl
文件后,重新创建存档 (tar -cf my-export.tar configuration entities links schemas metadata.json
) 并使用 strapi import -f my-export.tar
导入。根据文件扩展名自动检测加密和压缩。
¥After adjusting the .jsonl
files, re‑create the archive (tar -cf my-export.tar configuration entities links schemas metadata.json
) and import it with strapi import -f my-export.tar
. Encryption and compression are detected automatically based on the file extension.
指定导入文件
¥Specify the import file
要将数据导入 Strapi 实例,请在目标项目根目录中使用 strapi import
命令。使用 -f
或 --file
选项指定要导入的文件。文件名、扩展名和路径是必需的。如果文件已加密,系统会在导入开始之前提示你输入加密密钥。
¥To import data into a Strapi instance use the strapi import
command in the destination project root directory. Specify the file to be imported using the -f
or --file
option. The filename, extension, and path are required. If the file is encrypted, you are prompted for the encryption key before the import starts.
示例:从 Strapi 项目根目录中的文件导入数据的最少命令
¥Example: Minimum command to import data from a file in the Strapi project root
- yarn
- npm
yarn strapi import -f /path/to/my/file/export_20221213105643.tar.gz.enc
npm run strapi import -- -f /path/to/my/file/export_20221213105643.tar.gz.enc
示例:导入纯 .tar
存档
¥Example: Import a plain .tar
archive
- yarn
- npm
yarn strapi import -f /path/to/my/file/backup.tar
npm run strapi import -- -f /path/to/my/file/backup.tar
提供加密密钥
¥Provide an encryption key
如果要从加密文件导入数据,则可以使用 strapi import
命令通过 -k
或 --key
选项传递加密密钥。
¥If you are importing data from an encrypted file the encryption key can be passed with the strapi import
command by using the -k
or --key
option.
示例:使用 strapi import
命令传递加密密钥
¥Example: Pass the encryption key with the strapi import
command
- yarn
- npm
yarn strapi import -f /path/to/my/file/export_20221213105643.tar.gz.enc --key my-encryption-key
npm run strapi import -- -f /path/to/my/file/export_20221213105643.tar.gz.enc --key my-encryption-key
绕过所有命令行提示
¥Bypass all command line prompts
使用 strapi import
命令时,需要确认导入会删除现有数据库内容。--force
标志允许你绕过此提示。此选项对于以编程方式实现 strapi import
很有用。对于编程使用,你还必须为加密文件传递 --key
选项。
¥When using the strapi import
command, you are required to confirm that the import will delete the existing database contents. The --force
flag allows you to bypass this prompt. This option is useful for implementing strapi import
programmatically. For programmatic use, you must also pass the --key
option for encrypted files.
--force
选项示例
¥Example of the --force
option
- yarn
- npm
yarn strapi import -f /path/to/my/file/export_20221213105643.tar.gz.enc --force --key my-encryption-key
npm run strapi import -- -f /path/to/my/file/export_20221213105643.tar.gz.enc --force --key my-encryption-key
导入期间排除数据类型
¥Exclude data types during import
默认 strapi import
命令导入你的内容(实体和关系)、文件(资源)、项目配置和架构。--exclude
选项允许你通过以逗号分隔的字符串传递这些项目来排除内容、文件和项目配置,类型之间不带空格。你无法排除架构,因为架构匹配用于 strapi import
。
¥The default strapi import
command imports your content (entities and relations), files (assets), project configuration, and schemas. The --exclude
option allows you to exclude content, files, and the project configuration by passing these items in a comma-separated string with no spaces between the types. You can't exclude the schemas, as schema matching is used for strapi import
.
任何从导入中排除的类型都将在你的目标实例中删除。例如,如果你排除 config
,则目标实例中的项目配置将被删除。
¥Any types excluded from the import will be deleted in your target instance. For example, if you exclude config
the project configuration in your target instance will be deleted.
图片等媒体由文件(资源)和数据库中的实体组成。如果你使用 --exclude
标志来删除资源,数据库记录仍然包含在内,并且可能渲染为损坏的链接。
¥Media such as images consist of the file (asset) and the entity in the database. If you use the --exclude
flag to remove assets, the database records are still included, and could render as broken links.
示例:从导入中排除资源
¥Example: exclude assets from an import
- yarn
- npm
yarn strapi import -f /path/to/my/file/export_20221213105643.tar.gz.enc --exclude files
npm strapi import -- -f /path/to/my/file/export_20221213105643.tar.gz.enc --exclude files
导入期间仅包含指定的数据类型
¥Include only specified data types during import
默认 strapi import
命令导入你的内容(实体和关系)、文件(资源)、项目配置和架构。--only
选项允许你通过传递逗号分隔的字符串(类型之间不带空格)来仅导出列出的项目。可用值为 content
、files
和 config
。始终导入架构,因为架构匹配用于 strapi import
。
¥The default strapi import
command imports your content (entities and relations), files (assets), project configuration, and schemas. The --only
option allows you to export only the listed items by passing a comma-separated string with no spaces between the types. The available values are content
, files
, and config
. Schemas are always imported, as schema matching is used for strapi import
.
图片等媒体由文件(资源)和数据库中的实体组成。如果你使用 --only
标志导入 content
,资源数据库记录仍然包含在内,并且可能渲染为损坏的链接。
¥Media such as images consist of the file (asset) and the entity in the database. If you use the --only
flag to import content
the asset database records are still included, and could render as broken links.
示例:仅导入项目配置
¥Example: import only the project configuration
- yarn
- npm
yarn strapi import -f /path/to/my/file/export_20221213105643.tar.gz.enc --only config
npm strapi import -- -f /path/to/my/file/export_20221213105643.tar.gz.enc --only config