如何在drupal 8中将内容类型及其相关内容从一个网站导入/导出到另一个网站?
答案 0 :(得分:2)
您可以通过Drupal 8提供的“同步”功能导出/导入内容类型及其字段类型和字段存储。 这里的URL:admin / config / development / configuration
答案 1 :(得分:1)
在这个答案中,我假设您安装了Drush。 (如果没有,可以在/ admin / config / development / configuration管理配置文件)。
好的,对于您的SiteA,打开终端并转到SiteA文件夹。 假设您希望将您的配置写入/ sites / default / dev文件夹。所以写下面的命令:
drush cex dev
它将导出您的所有网站配置。如果您创建了新的内容类型,则会将它们导出到dev文件夹中。
现在转到SiteA的dev文件夹并复制与您的内容类型相关的每个yml文件。
之后,只需将它们粘贴到同一文件夹中,但这次是在SiteB中。 最后,在终端中,转到SiteB文件夹并编写以下命令:
drush cim dev
修改:
如果你想使用dev文件夹,你需要在settings.php中使用这个配置
$config_directories['dev'] = 'sites/default/dev';
另外,我的回答只导出内容类型配置。不是它的内容。
答案 2 :(得分:1)
如果源网站和目标网站相同且您可以导入/导出配置,则使用配置导出/导入是最佳解决方案,否则,使用features module应该是很好的解决方案。
功能模块可以捕获和管理功能 Drupal的。功能是Drupal实体的集合 一起满足某个用例。
功能提供了用于进行不同网站构建的UI和API 具有可导出的模块中的组件并将它们捆绑在一起 单个功能模块。功能模块就像任何其他Drupal一样 模块,除了它在其信息文件中包含其他信息 以便可以检查,更新或还原配置 编程。
答案 3 :(得分:1)
您会发现drupal / console命令 config:export:content:type 在这里会有所帮助。
创建一个模块,然后运行此命令,它将为您完成所有艰苦的工作:
.ol-attribution
这会将其放在模块的config / install目录中。在新站点上启用该模块后,它将自动运行。
我遇到的一个难题是,它为核心中已经包含的配置添加了两个文件。我只是删除了它们,一切都很好。基本上,如果yml文件没有在文件名中引用您的内容类型,则您可能不需要它。
有关更多信息:
drupal config:export:content:type --module=new_module --remove-uuid --remove-config-hash content_type_to_export