第9回 Drupal 勉強会@DC LT:5分 https://dgcircus.connpass.com/event/65928/
最近Drupal8を触り始め、ステージングへの移行のためにConfigurationManagementを使った話です。 メチャクチャハマって心が折れています。 まとめると モジュール管理はComposer 構成管理はConfigurationManagement コンテンツ管理は・・・・
Drupal8のConfigurationManagementで心が折れた話泰昌平 @ShoheiTai
View Slide
自己紹介泰 昌平スパイスファクトリー株式会社Webエンジニア● ペチパー。CakePHP, WP, Phalcon● 最近はGoogleCloudPlatformが好き● 趣味はダーツ, バイク, ボルダリング
Drupal8の設定管理で起こった悲劇
Drupalと私● PHPとの付き合いは長い● 個人的なお仕事でDrupal7を軽く触った● Drupal8は見たことも触ったこともない
誤りや更に良い方法があればご教示頂きたいです…!
やりたいこと● ステージングへデータを移行したい○ 設定○ モジュール○ コンテンツ
ConfigurationManagement
ConfigurationManagement● Drupal8からConfigurationManagementが使える● 設定のインポート、エクスポートが可能● gzip形式のファイルでエクスポートされる(他形式もあるっぽい?)
Configuration synchronization
できた!!!
エラーが出る
DrupalサイトのUUID● 各drupalサイトに一意なUUIDが発行されている● drush cget system.site○ import元でuuidを取得● drush cset system.site uuid サイトID○ import先でサイトのUUIDをセットする(settings.phpでも管理できる…?)
エラーが出る● Configuration Synchronizationの機能はインストールしたModuleの管理をしない● Moduleに依存するデータが入っていると失敗する● 一つひとつインストールすればOK
Module管理?
Moduleの管理方法● Drupal8ではcomposerでの管理に統一● Moduleをcomposer.jsonに記載● composer install
composerを使わないまま開発が進んでいたので…
使っているModuleを抽出drush pm-list --type=Module --no-core --status=enabled
composer requireに記載composer require --update-no-dev --no-interaction “drupal/**”
よし!できた!!!
インポート中に落ちる● 何度やってもインポート失敗● メモリ割り当てを上げてももれなく死ぬ● 設定ファイルを再作成してもらっても死ぬ
Configファイルの山
エラー内容が不明だったので…エラーを表示する設定にする。デフォルトだとNone?
結局の原因(画像なし)● WebProfilerモジュールが悪さをしていたっぽい● 結局根本原因はわからなかった● WebProfilerを削除して事なきを得た(得てない)
なんとかうまくいきました…
まとめ● 心が折れそう● system.site uuidは管理しておくこと● モジュールはComposerで管理する● その他設定などはConfigurationManagement
ぼくのかんがえたさいきょうのインポート
THANKS!Any questions?You can find me at✘ shouhei.tai @ShoheiTai