关于 drupal-config
使用 Drush 和 Config Split 管理 Drupal 配置的技能,涵盖导入导出、环境专属配置及故障排查,并提示如何安全地执行远程操作。
主要功能
- 01导出和导入活动配置
- 02区分完整与部分拆分
- 03列出 Config Split 命令
- 04提供导入故障排查方法
- 05说明安全的远程检查方式
适用场景
- 01导入前预览配置变更
- 02用拆分管理环境专属设置
- 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