$30 off During Our Annual Pro Sale. View Details »

Migrate Drupal7 to Drpual8

Migrate Drupal7 to Drpual8

kazukomurata

October 01, 2020
Tweet

More Decks by kazukomurata

Other Decks in Technology

Transcript

  1. Migrate Drupal7 to Drupal8
    @kazunoko_m

    View Slide

  2. Drupal8で移行といえば・・・
    Drupal8サイト
    Drupal9サイト
    Drupal7サイト
    他のCMS
    etc...
    HTML群

    View Slide

  3. 今日の観点
    Drupal8サイト
    Drupal9サイト
    Drupal7サイト
    HTML群
    他のCMS
    etc...

    View Slide

  4. 何が移行できる
    ● サイトの設定からコンテンツのデータまで全て
    ● と、言うもののコントリビューションモジュールは
    D8版が存在していないと厳し

    View Slide

  5. 手順
    1. 新規インストールが完了したDrupal8を用意
    2. D7で有効だったモジュールをD8側でもインストール・有効化
    3. 移行のモジュールを有効化
    4. 移行実行
    a. 画面から
    b. drushから
    5. カスタムテーマ・モジュールのD8版作成

    View Slide

  6. 移行のモジュール

    View Slide

  7. 画面から実行 1/6
    URL : /upgrade

    View Slide

  8. 画面から実行 2/6

    View Slide

  9. 画面から実行 3/6

    View Slide

  10. 画面から実行 4/6

    View Slide

  11. 画面から実行 5/6

    View Slide

  12. 画面から実行 6/6

    View Slide

  13. drushから実行 1/2
    ● 参考 : Upgrade using Drush
    ● コントリビューション Migrate Plus, Migrate Tools が必要
    1. 移行用のconfigを生成
    a. https://qiita.com/masam10/items/5b0d14d2af0115307d27 の設定を自動生成している
    2. 設定系の移行実行
    3. コンテンツ系の移行を実行
    4. 実行結果を確認

    View Slide

  14. drushから実行 2/2
    移行用のconfigを生成
    drush migrate -upgrade --legacy-db-url=mysql://user:password@server/db
    --legacy-root=http://example.com --configure-only
    設定系の移行実行
    drush migrate:import --group=migrate_drupal_7 --tag=Configuration
    --execute-dependencies
    コンテンツ系の移行を実行
    drush migrate:import --group=migrate_drupal_7 --tag=Content
    --execute-dependencies
    実行結果を確認
    drush migrate:status --group='migrate_drupal_7'

    View Slide

  15. Tips という名のつまずいたところ
    ● Field collection移行
    ● 多言語コンテンツ:デフォルト言語が変わってしまう
    ● テキストのフォーマット混合問題
    ● D8にテキストフィルター、フォーマッター、ウィジェットが無い
    ● メディア

    View Slide

  16. Field collection移行
    ● Drupal8にField collectionはない
    ● Paragraphsに移行する
    ● 対応パッチ:
    https://www.drupal.org/project/paragraphs/issues/2911244
    ● 8.x-1.x-dev をインストールでOK。
    https://git.drupalcode.org/project/paragraphs/-/network/8.x-1.x

    View Slide

  17. 多言語コンテンツ
    デフォルト言語が変わる
    ● 翻訳言語が存在する場合、言語コードの
    abc順に登録される。データ構造
    上、最初に登録される言語がオリジナルになる。
    ● オリジナル:日本語(ja)・翻訳:英語(en)の場合、英語(en)が先に登録されるの
    で、オリジナル・翻訳が逆転する。
    ● パッチにて、オリジナル言語を先に登録するようにソート順を追加する。
    ● https://gist.github.com/kazukomurata/f4e59bdbc7ad645e1d52203d7
    6380017
    ○ おそらくPostgreSQLではソート順を逆にする必要がある。

    View Slide

  18. テキストフォーマット混合問題
    ● https://www.drupal.org/docs/upgrading-drupal/known-issues-when-u
    pgrading-from-drupal-6-or-7-to-drupal-8-or-9
    ● テキスト、テキストエリアのフィールドを複数のコンテンツタイプで共有してい
    る場合に発生する可能性がある
    ● D7とD8の構造の違い

    View Slide

  19. D8にテキストフィルター、フォーマッター、ウィ
    ジェットが無い
    ● テキストフィルター
    ○ 独自作成か・・・解がない。
    ● フォーマッター
    ○ Twigの方が早い
    ● ウィジェット
    ○ 代替モジュールは結構ある

    View Slide

  20. メディア
    ● D7にもメディアがあったが、D8と構造が異なる。
    ● ファイル群をメディアへ移行するモジュールがある。
    ● https://www.drupal.org/project/media_migration
    ● ただし、単純なファイル添付フィールドもメディア参照に切り替わってしまいそ
    う(ソースコードの雰囲気)
    ● それは・・・やりすぎかも・・・。

    View Slide