Skip to main content

Data import

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

The strapi import command is 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,
  • the metadata.json file.

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.

warning
  • strapi import deletes all existing data, including the database and uploads directory, before importing the backup file.
  • The source and target schemas must match to successfully use strapi import, meaning all content types must be identical.
  • Restored data does not include the Admin users table, which means that createdBy and updatedBy are empty in a restored instance.

Specify the import file​

To import data into a Strapi instance use the strapi import command in the 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.

Example: Minimum command to import data from a file in the Strapi project root​

yarn" label="yarn">

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

npm" label="npm">

npm run strapi import -- -f export_20221213105643.tar.gz.enc

Provide an encryption 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.

Example: Pass the encryption key with the strapi import command​

yarn" label="yarn">

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

npm" label="npm">

npm run strapi import -- -f export_20221213105643.tar.gz.enc --key my-encryption-key

Bypass all command line prompts​

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.

Example of the --force option​

yarn" label="yarn">

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

npm" label="npm">

npm run strapi import -- -f export_20221213105643.tar.gz.enc --force --key my-encryption-key

Exclude data types during 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.

warning

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.

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: exclude assets from an import​

yarn" label="yarn">

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

npm" label="npm">

npm strapi import -- -f export_20221213105643.tar.gz.enc --exclude files

Include only specified data types during 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.

note

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" label="yarn">

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

npm" label="npm">

npm strapi import -- -f export_20221213105643.tar.gz.enc --only config