我们有一个D8站点,在那里我们使用配置管理来导出和部署到多个环境。我们最近创建了一个新的内容类型,博客,我们添加了几个字段(field_url,field_country)。当我们在本地开发环境中导出这个文件时,所有这些都导出到yml文件中。
当我们将这些配置推送到开发和测试环境中时,即使在运行drush @env cim之后,我们也会发现它们是不同步的。通过进一步的分析,我们发现UUID是不同的,并导致了这个问题。
然而,即使我们要将配置从Dev环境导出到本地环境,我们仍然可以看到UUID是不同的。
settings.php已经包含了$config_directories['sync'] = 'path/to/config-folder';
我们如何使UUID保持同步?对于其他内容类型或字段,我们没有这个问题。
发布于 2018-04-19 20:44:24
正确的方法是创建一个config_sync文件夹,您可以在settings.php文件中这样设置它。
$config_directories['sync'] = 'path/to/config-folder';然后可以运行drush cex导出当前配置,并运行drush cim导入。我在我所有的drupal网站上这样做,从来没有遇到过任何问题。
如果使用git,则应提交配置文件,以便在生产时导入它们。
更新:正如在drupal.org上描述的完全导出,只有当您从一个站点的副本移动到另一个站点时,配置页面上的配置页面才会使用。
也可以将完整的站点配置作为yml文件转储到tar.gz文件中。只有当您在同一站点的两个副本(例如开发和生产)之间移动配置时,这才有效,因此,站点UUID必须匹配。
尝试使用drush cex命令。
https://drupal.stackexchange.com/questions/260231
复制相似问题