Data import
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.jsonfile.
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 importdeletes 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 userstable, which means thatcreatedByandupdatedByare 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
- npm
yarn strapi import -f export_20221213105643.tar.gz.enc
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
- npm
yarn strapi import -f export_20221213105643.tar.gz.enc --key my-encryption-key
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
- npm
yarn strapi import -f export_20221213105643.tar.gz.enc --force --key my-encryption-key
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.
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.
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 export_20221213105643.tar.gz.enc --exclude files
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.
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 export_20221213105643.tar.gz.enc --only config
npm strapi import -- -f export_20221213105643.tar.gz.enc --only config