Skip to main content

Data export

:::strapi v4.6.0 feature Data export is available in v4.6.0 and newer versions of Strapi. See the Updates and Migration documentation to upgrade your application. :::

The strapi export command is used to export data from a local Strapi instance. By default, the strapi export command exports data as 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,
  • the metadata.json file.

The following documentation details the available options to customize your data export. The export command and all of the available options are run using the Strapi CLI.

caution
  • Admin users and API tokens are not exported.
  • Media from a 3rd party provider (e.g., Cloudinary or AWS S3) are not included in the export as those files do not exist in the upload folders.

Name the export file​

Exported data are contained in a .tar file that is automatically named using the format export_YYYYMMDDHHMMSS. You can optionally name the exported file by passing the --file or -f option with the strapi export command. Do not include a file extension as one will be set automatically depending on options provided.

Example: Export data with a custom filename​

yarn" label="yarn">

yarn strapi export --file my-strapi-export

npm" label="npm">

npm run strapi export -- --file my-strapi-export

Configure data encryption​

The default strapi export command encrypts your project data using aes-128-ecb encryption and adds the file extension .enc. To use encryption you need to pass an encryption key using the -k or --key option or enter an encryption key when prompted. The encryption key is a string with no minimum character count.

Encryption keys Strong encryption keys are encouraged to protect sensitive data in your project. OpenSSL is a resource for generating encryption keys. The following example commands generate encryption keys in a terminal:

mac" label="Mac/Linux">

openssl rand -base64 48

windows" label="Windows">

node -p "require('crypto').randomBytes(48).toString('base64');"

:::

To disable encryption, pass the --no-encrypt option with the strapi export command.

Example: Export data without encryption​

yarn" label="yarn">

yarn strapi export --no-encrypt

npm" label="npm">

npm run strapi export -- --no-encrypt

Example: Export data with the encryption --key option​

yarn" label="yarn">

yarn strapi export --key my-encryption-key

npm" label="npm">

npm run strapi export -- --key my-encryption-key

Disable data compression​

The default strapi export command compresses your project data using gzip compression and adds the .gz file extension.

To disable compression, pass the --no-compress option with the strapi export command.

Example: Export data without compression​

yarn" label="yarn">

yarn strapi export --no-compress

npm" label="npm">

npm run strapi export -- --no-compress

Export only selected types of data​

The default strapi export command exports 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 exported, as schema matching is used for strapi import.

note

Media such as images consist of the file (asset) and the entity in the database. If you use the --only flag to export content, the asset database records are still included, and could render as broken links.

Example: Export only entities and relations​

yarn" label="yarn">

yarn strapi export --only content

npm" label="npm">

npm run strapi export -- --only content

Exclude items from export​

The default strapi export command exports 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.

note

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: Export data excluding assets, entities, and relations​

yarn" label="yarn">

yarn strapi export --exclude files,content

npm" label="npm">

npm run strapi export -- --exclude files,content