Migrate Drupal7 to Drpual8
by
kazukomurata
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 ● ただし、単純なファイル添付フィールドもメディア参照に切り替わってしまいそ う(ソースコードの雰囲気) ● それは・・・やりすぎかも・・・。