Drupal Advent Calendar 2018 14日目の記事です。
今年の冬は暖冬で雪が少なく、スノーボードをするのですがスキー場のオープンが遅れたりで不安な今日この頃です。
早速ですが、 Configuration Split モジュールを利用すると 特定のモジュールや設定を環境毎に切り替えることが可能です。今回は、このモジュールの利用方法を紹介します。
モジュールのインストール
以下の方法にてモジュールをインストール(有効化)してください。
モジュールダウンロード
- 公式サイト Configuration Split から 圧縮ファイルを取得
- drush を利用 ->
drush dl -y config_split
- composer を利用 ->
composer require drupal/config_split
モジュール有効化
/admin/modules
よりConfiguration split
にチェックを付与しインストール
特定モジュールの環境毎の切り替え
例としてコアモジュールのUpdate Managerを本番環境は有効、開発環境は無効ということを行ってみたいと思います。
Configuration Split の設定
環境設定 -> Configuration Split Setting より Configuration Splitの設定を行います
Add Configuration Split Setting
をクリック設定画面にて以下の設定を行います
- ラベル… 任意のラベルを入力 (例:production)
- Folder… この設定でエクスポートされるconfigを配置するディレクトリ (例:../config/production)
※ 自動でディレクトリは作成されない為、エクスポート前に予め作成しておく必要があります。 - COMPLETE SPLIT -> モジュール… この設定で対象とするモジュール
(今回はUpdate Managerを対象とする為update
を選択)
設定は以上になります。
設定のエクスポート
設定のエクスポートは drush コマンドを利用します。
drush cex
で設定をエクスポートします
正常にエクスポートが終わると config/production
(Configuration Splitの設定にて定義したFolder)に
update.settings.yml
というファイルが作成されているはずです。
環境毎に有効(設定含む)/無効を切り替え
本番環境ではUpdate Managerを有効、開発環境では無効化したい為、各環境のsettings.phpに以下を追加します。
- 本番環境 -> 有効
$config['config_split.config_split.production']['status'] = TRUE;
- 開発環境 -> 無効
$config['config_split.config_split.production']['status'] = FALSE;
設定のインポート
最後に設定が正しく行えているかインポートを行い確認します。
本番環境の場合
Update Managerが有効化されることを確認する為、予めアンインストールします
drush cim
で設定のインポートを行います以下のようにUpdate Mangerに関する設定をインポートする旨のメッセージが表示されるので
yes
を入力しインポートします。
~ ❯❯❯ drush cim
+------------+-----------------+-----------+
| Collection | Config | Operation |
+------------+-----------------+-----------+
| | update.settings | Create |
| | core.extension | Update |
+------------+-----------------+-----------+
Import the listed configuration changes? (yes/no) [yes]:
> yes
[notice] 拡張の同期中: install update
[notice] 構成の同期を完了します。
[success] The configuration was imported successfully.
開発環境の場合
Update Managerが無効化されることを確認する為、予めインストールします
drush cim
で設定のインポートを行います以下のようにUpdate Managerに関する設定の削除する旨のメッセージが表示されるので
yes
を入力しインポートします。
~ ❯❯❯ drush cim
+------------+-----------------+-----------+
| Collection | Config | Operation |
+------------+-----------------+-----------+
| | core.extension | Update |
| | update.settings | Delete |
+------------+-----------------+-----------+
Import the listed configuration changes? (yes/no) [yes]:
>
[notice] 拡張の同期中: uninstall update
[notice] 構成の同期を完了します。
[success] The configuration was imported successfully.
以上のようにConfiguration Splitモジュールを利用すると環境毎にモジュールの有効/無効を切り替えることができ かつ、有効化した場合の設定内容をConfiguration Managerと同様yamlファイルに書き出すことができます。
複数環境でDrupalを運用されておりConfiguration Managerを活用されている方はぜひ使ってみてください!
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。