mcpField
D
drupal-config

drupal-config

github.com/edutrul云与 DevOps7350 次安装21 周前更新
代码仓库

关于 drupal-config

使用 Drush 和 Config Split 管理 Drupal 配置的技能,涵盖导入导出、环境专属配置及故障排查,并提示如何安全地执行远程操作。

主要功能

  1. 01导出和导入活动配置
  2. 02区分完整与部分拆分
  3. 03列出 Config Split 命令
  4. 04提供导入故障排查方法
  5. 05说明安全的远程检查方式

适用场景

  1. 01导入前预览配置变更
  2. 02用拆分管理环境专属设置
  3. 03排查导出时配置被移除的问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/edutrul/drupal-ai --skill drupal-config

安装后在 Claude Code 中输入/drupal-config确认已加载。

附带文件README.mdreferences/full-guide.md

详细介绍

Drupal 配置管理

安全须知:避免意外导入远程配置

远程 drush 可能默认使用 --yes 并自动确认 cim。请始终采用安全模式:

# SAFE — preview only
ssh user@remote "drush cim --no --diff"
ssh user@remote "drush config:get config.name"
ssh user@remote "drush config:status"

# DANGEROUS — may auto-import
ssh user@remote "drush cim --diff"

导入 / 导出

ddev drush cex               # Export active config → YAML files
ddev drush cim               # Import YAML files → active config
ddev drush cim --no --diff   # Preview only (no import)
ddev drush config:status     # Show pending changes (read-only)

配置拆分

完整与部分——关键区别
类型行为用途
完整配置仅存在于该环境中模块启用 / 关闭(devel、stage_file_proxy)
部分基础配置在所有环境中相同,值不同API 密钥、SMTP、搜索服务 URL

完整拆分:配置会从 config/sync/ 中移除,仅保存在 config/{split}/ 中。 部分拆分:配置保留在 config/sync/ 中,覆盖项保存在 config/{split}/config_split.patch.*.yml 中。

拆分命令
ddev drush config-split:status            # List splits and active state
ddev drush csex {split-name}              # Export specific split
ddev drush csim {split-name}              # Import specific split
ddev drush config-split:activate {name}
ddev drush config-split:deactivate {name}
更新拆分定义

更改必须写入活动配置(数据库),而不只是 YAML 文件:

# Edit YAML, then import to activate
ddev drush config:import --partial
# OR set via PHP eval
ddev drush php:eval "\$c = \Drupal::configFactory()->getEditable('config_split.config_split.local'); \$c->set('partial_list', ['config.name']); \$c->save();"
ddev drush cex

故障排除

导出时配置从 config/sync/ 中被删除

根本原因:配置位于 complete_list,而不是 partial_list 中。

# Diagnose
grep -A10 "complete_list:" config/sync/config_split.config_split.local.yml
grep -A10 "partial_list:" config/sync/config_split.config_split.local.yml

修复方法:在拆分 YAML 中将该项从 complete_list 移到 partial_list,然后导入并重新导出。

配置无法导入
ddev drush config:import --skip-config=system.site   # Skip specific locked config
ddev drush config:import --skip-modules=config_split  # Ignore splits
拆分未激活
ddev drush config-split:status
ddev drush config-split:activate {split-name}
ddev drush cex

意图 → 命令映射

用户意图命令
预览配置更改drush cim --no --diff
导入配置drush cim
导出配置drush cex

相关命令

只读:config:get、config:status 导出:cex / config:export 导入:cim --no --diff(预览)、cim(应用) 拆分:config-split:status、csex、csim、config-split:activate

深入了解

  • full-guide.md — Config Split 2.0、补丁文件及导出 / 导入内部机制的扩展参考

评论

支持 Markdown