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
コンテンツ管理は・・・・

泰 昌平@ShoheiTai

October 24, 2017
Tweet

More Decks by 泰 昌平@ShoheiTai

Other Decks in Programming

Transcript

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

    View Slide

  2. 自己紹介
    泰 昌平
    スパイスファクトリー株式会社
    Webエンジニア
    ● ペチパー。CakePHP, WP, Phalcon
    ● 最近はGoogleCloudPlatformが好き
    ● 趣味はダーツ, バイク, ボルダリング

    View Slide

  3. Drupal8の設定管理で起こった悲劇

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. ConfigurationManagement

    View Slide

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

    View Slide

  9. Configuration synchronization

    View Slide

  10. Configuration synchronization

    View Slide

  11. できた!!!

    View Slide

  12. エラーが出る

    View Slide

  13. DrupalサイトのUUID
    ● 各drupalサイトに一意なUUIDが発行されている
    ● drush cget system.site
    ○ import元でuuidを取得
    ● drush cset system.site uuid サイトID
    ○ import先でサイトのUUIDをセットする
    (settings.phpでも管理できる…?)

    View Slide

  14. できた!!!

    View Slide

  15. View Slide

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

    View Slide

  17. Module管理?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. よし!できた!!!

    View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. View Slide

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

    View Slide

  28. Configファイルの山

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide