【发布时间】:2017-06-28 12:40:22
【问题描述】:
如何在 drupal 8 中将内容类型及其相关内容从一个网站导入/导出到另一个网站?
【问题讨论】:
标签: drupal-8
如何在 drupal 8 中将内容类型及其相关内容从一个网站导入/导出到另一个网站?
【问题讨论】:
标签: drupal-8
您会发现 drupal/console 命令 config:export:content:type 在这里会有所帮助。
创建一个模块,然后运行这个命令,它会为你完成所有艰苦的工作:
drupal config:export:content:type --module=new_module --remove-uuid --remove-config-hash content_type_to_export
这会将它放在模块的 config/install 目录中。当您在新站点上启用该模块时,它会自动运行。
我遇到的一个问题是它添加了几个文件用于配置已经包含在核心中。我刚刚删除了它们,一切都很好。基本上,如果 yml 文件的文件名中没有引用您的内容类型,那么您可能不需要它。
更多信息:
drupal help config:export:content:type
【讨论】:
在此答案中,我假设您已安装 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';
另外,我的回答只导出内容类型配置。不是内容。
【讨论】:
您可以通过 Drupal 8 提供的同步功能导出/导入内容类型及其字段类型和字段存储。 这里是这个 URL:admin/config/development/configuration
【讨论】:
如果源网站和目标网站相同,并且可以导入/导出配置,使用配置导出/导入是最好的解决方案,如果不是,使用features module应该是您的最佳解决方案。
功能模块可以捕获和管理功能 德鲁巴。特征是 Drupal 实体的集合 一起满足某个用例。
Features 提供了一个 UI 和 API,用于构建不同的站点 来自模块的组件和可导出的组件并将它们捆绑在一起 单个功能模块。功能模块就像任何其他 Drupal 模块,除了它在其信息文件中包含附加信息 以便可以检查、更新或恢复配置 以编程方式。
【讨论】: