我正在Drupal 8中构建一个自定义模块。它包含一些YAML配置文件。
在开发过程中,我需要更改并添加到配置中,例如,将另一个字段添加到我的自定义实体中。
目前,我发现让Drupal注意到更改的唯一方法是卸载模块并重新安装。
有没有办法让Drupal检查模块提供的配置文件是否与活动配置相同,如果不相同,则更新活动配置?如何处理模块更新?在D7 hook_update_N
中将使用PHP添加字段,但是看起来这应该由D8中的CM处理吗?
更新模块中的yml文件后我尝试过的事情:
drush cr
,配置同步。手动将所有更新的配置文件复制到
sites/default/files/config_XXX/staging/
-但这会出现此错误“无法导入暂存的配置,因为它源自与该站点不同的站点。您只能在此站点的克隆实例之间同步配置。” 。使用配置管理器手动导入文件。这可行,但是显然必须有一种更自动的方法。
[EDIT]手动使用config_update模块检查更改并“还原”到模块的配置。同样,这是手动的。
编辑:从管理配置-做和不做
不要
尝试通过更改模块的config / install目录中的文件来更改站点上的活动配置。这将不起作用,因为Drupal仅在安装模块时从该目录读取。
...但是将会发生变化,除非模块绑定到他们在第一个发行版本中所需的任何配置,并且可能永远不会更新或添加配置。
提前致谢。
hook_update_N
我会承担,但我不知道是什么