mcpField
D
drupal-config

drupal-config

github.com/edutrulクラウド・DevOps7350 回インストール21 週間前に更新
リポジトリ

drupal-config について

DrushとConfig Splitを使ってDrupalの設定を管理するスキルです。インポートとエクスポート、環境別設定、トラブルシューティングに加え、安全なリモート操作の方法を説明します。

主な機能

  1. 01アクティブ設定のエクスポートとインポート
  2. 02完全分割と部分分割の区別
  3. 03Config 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)

Config Splits

完全と部分 — 重要な違い
種類動作用途
完全構成はその環境にのみ存在しますモジュールの有効化/無効化(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 ファイルだけではなく、アクティブな構成(DB)に反映する必要があります。

# 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/ から削除される

根本原因:構成が partial_list ではなく complete_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、パッチファイル、エクスポート/インポートの内部処理に関する詳細なリファレンス

コメント