--- myst: html_meta: "description": "Features of plone.exportimport" "property=og:description": "Features of plone.exportimport" "property=og:title": "Features" "keywords": "Plone 6, plone.exportimport" --- (features-label)= # Features The `plone.exportimport` package provides support to export and import all kinds of data from and to Plone sites using a intermediate json-format. Most features use `plone.restapi` to serialize and deserialize data. ## Supported Data * Content (Dexterity content items) * Ordering * Local Roles * Versions * Default Pages * Principals (Members and Groups) * Relations (Relationship between content items) * Translations (Translation groups) * Discussions (Content comments) * Redirects (Redirect information) ## Exported Data Structure Some goals of the new data structure are: * Support diff of exported data * Have blob files near the content item that uses it In the top level directory with the exported content, we have the following objects: | Name | Description | | --- | --- | | `content` | Directory containing content item information exported from the site | | `discussions.json` | JSON File with discussions (comments) exported from the site | | `principals.json` | JSON File with members and groups exported from the site | | `redirects.json` | JSON File with redirect information exported from the site | | `relations.json` | JSON File with content relations exported from the site | | `translations.json` | JSON File with translation groups exported from the site | ### Content Directory structure In the `content` directory we have all content items exported from the site. Each content item will have its own sub-directory, named with the UID of the content, including the serialized data and all blob files related to this content. One special case is the directory for the `Plone Site` object, that will be named **plone_site_root**. | Name | Description | | --- | --- | | `content/__metadata__.json` | JSON File with metadata information about the exported content | | `content/` | Directory with serialization for a content item | | `content/plone_site_root` | Directory with serialization for the Plone Site Root | #### Content Item Directory Structure Considering we have a File content item with UID `3e0dd7c4b2714eafa1d6fc6a1493f953` and a PDF file named `plone.pdf` (added in the `file` field), the exported directory will look like: | Name | Description | | --- | --- | | `content/3e0dd7c4b2714eafa1d6fc6a1493f953/data.json` | JSON File with serialized representation of a content item | | `content/3e0dd7c4b2714eafa1d6fc6a1493f953/file/plone.pdf` | Blob file stored in the `file` field in the content item | ## Command Line Utilities This package provides two command line utilities: `plone-exporter` and `plone-importer`. ## `plone-exporter` Export content from a Plone site to a directory in the file system. Usage: - `plone-exporter` Example: ```shell plone-exporter instance/etc/zope.conf Plone /tmp/plone_data/ ``` ## `plone-importer` Import content from a file system directory into an existing Plone site. Usage: - `plone-importer` Example: ```shell plone-importer instance/etc/zope.conf Plone /tmp/plone_data/ ```