Slide 1

Slide 1 text

Migrate Drupal7 to Drupal8 @kazunoko_m

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

移行のモジュール

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

画面から実行 2/6

Slide 9

Slide 9 text

画面から実行 3/6

Slide 10

Slide 10 text

画面から実行 4/6

Slide 11

Slide 11 text

画面から実行 5/6

Slide 12

Slide 12 text

画面から実行 6/6

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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'

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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