SuperAPI AI 工具集

drupal-config-management

部署与运维

查看项目

更新于 10-20 18:12

技能介绍

Drupal Config Management 是一套面向 Drupal 10/11 的配置管理模式指南,用于把声明式配置(YAML 文件)作为开发与部署之间的桥梁,避免部署出错。

用途与主要能力 其核心是围绕配置目录、导入导出流程与环境差异管理展开。资料区分了多种配置目录:config/sync 是 drush cim/cex 的主同步目录,drush cex 写入此处;config/default 是 Drupal 8 旧命名;config/staging 为部分托管平台使用的替代名称;模块的 config/install 存放启用模块时必然安装的默认配置,失败会导致模块启用失败;config/optional 仅在依赖(模块、实体类型)满足时安装,缺失则静默跳过。

使用方式 常用命令包括:drush cex -y 导出全部活动配置;drush cim -y 导入同步目录配置;drush cim --partial --source=... 做部分导入;drush config:status 查看活动配置与同步目录的差异;drush config:get 读取指定配置值;drush config:set 设置配置值(建议尽量通过 YAML 文件管理)。

环境差异管理 Config Split 模块用于按环境(dev、staging、prod)使用不同配置:complete split 表示配置只存在于 split 中、不进入 sync,常用于仅开发环境启用的模块;conditional split 表示配置在 sync 中保留默认值,split 覆盖特定值。split 通过 config_split.config_split.*.yml 定义,并在各环境的 settings.php 或 settings.local.php 中设置 status 来启用。目录结构建议为 config/sync 存共享基础配置,config/split/{dev,staging,prod} 存环境特定配置。Config Ignore 模块用于阻止特定配置在导入时被覆盖,适合站点名称、联系表单收件人等由站点管理员维护、不应从代码部署的配置;资料给出 ignored_config_entities 示例,并说明何时用 split(按环境取不同值)与 ignore(永不从代码部署)。Config Readonly 模块通过 settings.php 中的 $settings['config_readonly'] = TRUE 禁止在生产环境通过管理界面修改配置,并可用 config_readonly_whitelist_patterns 放行特定表单。

Schema 与翻译 每个配置文件应有 schema 定义(如 config/schema/my_module.schema.yml),否则 drush cim 可能静默接受无效配置。多语言站点的配置翻译文件位于 config/sync/language/LANGCODE/,随常规配置一起导入导出。

适用场景与限制 适用于需要多环境部署、环境特定模块和配置、生产配置只读的 Drupal 项目。资料列出常见陷阱:生产环境未启用 config_readonly 而直接在界面改配置;不同 Drupal 安装间复制 config/sync 导致 UUID 冲突(应使用模块的 config/install 做可移植配置);配置缺少 dependencies.module 与 dependencies.config 依赖;因 config_ignore 模式匹配导致配置未导入;界面改动后忘记导出(提交前运行 drush config:status,有变更则执行 drush cex -y)。工作流清单为:在 dev 修改配置、drush cex -y 导出、git diff 审查、随代码提交、在 staging 执行 drush cim -y && drush cr、在 prod 同样导入并在之后重新启用 config_readonly。