Comparison of modules for content deployment
This page is incomplete. See also the comparison page in the old documentation section.
Default Content
https://www.drupal.org/project/default_content
Uses the Serialization and HAL modules.
Default content is exported into a folder within the module directory.
Entities are exported as JSON files, one file per entity.
Entities can be exported either individually using Drush, or declared in bulk within the module’s info file.
Core improvements related to serialization unfortunately introduce undesired side effects in this module: https://www.drupal.org/project/default_content/issues/2933777
Content is only imported when the module is installed, but there is a patch that allows manual import per module: https://www.drupal.org/project/default_content/issues/2640734
This module can be extended with the Content Deploy module, which alters some functionality.
Default Content Deploy
https://www.drupal.org/project/default_content_deploy
Extends the Default Content module.
Uses a single content folder for the entire site, similar to the config folder.
Provides Drush commands to export specific content entities by type, bundle, or specific entity ID.
All entities are imported together; no granularity.
Structure Sync
https://www.drupal.org/project/structure_sync
Allows exporting content entities to database-stored configuration, which can then be exported to configuration files.
Requires additional Drush commands in the development workflow: entities are not automatically imported/exported during config sync.
Limited to certain types of entities only.
Exports all entities of a given type at once.
All exported content is stored in a single configuration item, so no granularity.
YAML Content
https://www.drupal.org/project/yaml_content
Content is stored in YAML files.
Any number of entities of any type can be stored in one file, and any number of files can be used.
Content can be imported from modules, profiles, or arbitrary folders.
No need to export content entities.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.