Migrate Drupal7 to Drupal8@kazunoko_m
View Slide
Drupal8で移行といえば・・・Drupal8サイトDrupal9サイトDrupal7サイト他のCMSetc...HTML群
今日の観点Drupal8サイトDrupal9サイトDrupal7サイトHTML群他のCMSetc...
何が移行できる● サイトの設定からコンテンツのデータまで全て● と、言うもののコントリビューションモジュールはD8版が存在していないと厳しい
手順1. 新規インストールが完了したDrupal8を用意2. D7で有効だったモジュールをD8側でもインストール・有効化3. 移行のモジュールを有効化4. 移行実行a. 画面からb. drushから5. カスタムテーマ・モジュールのD8版作成
移行のモジュール
画面から実行 1/6URL : /upgrade
画面から実行 2/6
画面から実行 3/6
画面から実行 4/6
画面から実行 5/6
画面から実行 6/6
drushから実行 1/2● 参考 : Upgrade using Drush● コントリビューション Migrate Plus, Migrate Tools が必要1. 移行用のconfigを生成a. https://qiita.com/masam10/items/5b0d14d2af0115307d27 の設定を自動生成している2. 設定系の移行実行3. コンテンツ系の移行を実行4. 実行結果を確認
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'
Tips という名のつまずいたところ● Field collection移行● 多言語コンテンツ:デフォルト言語が変わってしまう● テキストのフォーマット混合問題● D8にテキストフィルター、フォーマッター、ウィジェットが無い● メディア
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
多言語コンテンツデフォルト言語が変わる● 翻訳言語が存在する場合、言語コードのabc順に登録される。データ構造上、最初に登録される言語がオリジナルになる。● オリジナル:日本語(ja)・翻訳:英語(en)の場合、英語(en)が先に登録されるので、オリジナル・翻訳が逆転する。● パッチにて、オリジナル言語を先に登録するようにソート順を追加する。● https://gist.github.com/kazukomurata/f4e59bdbc7ad645e1d52203d76380017○ おそらくPostgreSQLではソート順を逆にする必要がある。
テキストフォーマット混合問題● https://www.drupal.org/docs/upgrading-drupal/known-issues-when-upgrading-from-drupal-6-or-7-to-drupal-8-or-9● テキスト、テキストエリアのフィールドを複数のコンテンツタイプで共有している場合に発生する可能性がある● D7とD8の構造の違い
D8にテキストフィルター、フォーマッター、ウィジェットが無い● テキストフィルター○ 独自作成か・・・解がない。● フォーマッター○ Twigの方が早い● ウィジェット○ 代替モジュールは結構ある
メディア● D7にもメディアがあったが、D8と構造が異なる。● ファイル群をメディアへ移行するモジュールがある。● https://www.drupal.org/project/media_migration● ただし、単純なファイル添付フィールドもメディア参照に切り替わってしまいそう(ソースコードの雰囲気)● それは・・・やりすぎかも・・・。