Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Drupal8のConfigurationManagementで心が折れた話 #drupalstudy

Drupal8のConfigurationManagementで心が折れた話 #drupalstudy

第9回 Drupal 勉強会@DC LT:5分
https://dgcircus.connpass.com/event/65928/

最近Drupal8を触り始め、ステージングへの移行のためにConfigurationManagementを使った話です。
メチャクチャハマって心が折れています。
まとめると
モジュール管理はComposer
構成管理はConfigurationManagement
コンテンツ管理は・・・・

9e83432930264c9c0a0d83d2e18b8280?s=128

泰 昌平@ShoheiTai

October 24, 2017
Tweet

More Decks by 泰 昌平@ShoheiTai

Other Decks in Programming

Transcript

  1. Drupal8のConfigurationManagementで 心が折れた話 泰昌平 @ShoheiTai

  2. 自己紹介 泰 昌平 スパイスファクトリー株式会社 Webエンジニア • ペチパー。CakePHP, WP, Phalcon •

    最近はGoogleCloudPlatformが好き • 趣味はダーツ, バイク, ボルダリング
  3. Drupal8の設定管理で起こった悲劇

  4. Drupalと私 • PHPとの付き合いは長い • 個人的なお仕事でDrupal7を軽く触った • Drupal8は見たことも触ったこともない

  5. 誤りや更に良い方法があれば ご教示頂きたいです…!

  6. やりたいこと • ステージングへデータを移行したい ◦ 設定 ◦ モジュール ◦ コンテンツ

  7. ConfigurationManagement

  8. ConfigurationManagement • Drupal8からConfigurationManagementが使える • 設定のインポート、エクスポートが可能 • gzip形式のファイルでエクスポートされる (他形式もあるっぽい?)

  9. Configuration synchronization

  10. Configuration synchronization

  11. できた!!!

  12. エラーが出る

  13. DrupalサイトのUUID • 各drupalサイトに一意なUUIDが発行されている • drush cget system.site ◦ import元でuuidを取得 •

    drush cset system.site uuid サイトID ◦ import先でサイトのUUIDをセットする (settings.phpでも管理できる…?)
  14. できた!!!

  15. None
  16. エラーが出る • Configuration Synchronizationの機能は インストールしたModuleの管理をしない • Moduleに依存するデータが入っていると失敗する • 一つひとつインストールすればOK

  17. Module管理?

  18. Moduleの管理方法 • Drupal8ではcomposerでの管理に統一 • Moduleをcomposer.jsonに記載 • composer install

  19. composerを使わないまま 開発が進んでいたので…

  20. 使っているModuleを抽出 drush pm-list --type=Module --no-core --status=enabled

  21. composer requireに記載 composer require --update-no-dev --no-interaction “drupal/**”

  22. よし!できた!!!

  23. None
  24. None
  25. None
  26. None
  27. インポート中に落ちる • 何度やってもインポート失敗 • メモリ割り当てを上げてももれなく死ぬ • 設定ファイルを再作成してもらっても死ぬ

  28. Configファイルの山

  29. エラー内容が不明だったので… エラーを表示する設定にする。デフォルトだとNone?

  30. 結局の原因(画像なし) • WebProfilerモジュールが悪さをしていたっぽい • 結局根本原因はわからなかった • WebProfilerを削除して事なきを得た(得てない)

  31. なんとかうまくいきました…

  32. まとめ • 心が折れそう • system.site uuidは管理しておくこと • モジュールはComposerで管理する • その他設定などはConfigurationManagement

  33. ぼくのかんがえた さいきょうのインポート

  34. THANKS! Any questions? You can find me at ✘ shouhei.tai

    @ShoheiTai