Drupal 8/9更新による私の経験パート1:ローカル環境


- 1
月曜日の夜は、私が遠ざかることができなかったそれらの夜のうちの1つでした.私は私のDrupal 8サイトをアップグレードしようとしました.長い夜の終わりまでに、私はDrupalとその悪名高い相棒(作曲家)によってひどく敗北しました.
少なくとも、それらはそれらの瞬間の敵であるようです.時間のベストでは、彼らは時々少しcantankerousを得る偉大な同盟国です.
ある日、私は再びそれに戻っています- Drupal 8からDrupal 9まで複数のウェブサイトシステムをアップグレードすることに取り組んでいます.
この記事では、私はDrupalの移行のヒントと私は私がこの旅の初めに知っていた希望トリックを一覧表示しています.
これはDrupal 7のDrupal 9への完全な再構築を必要としないが、1つの課題は20 +サイトがアップグレードされなければならないDrupalのマルチサイトシステムであるということである.

ジャーゴン
あなたのそれらの専門用語には、Drupalは無限の可能性だけでなく、無限の頭痛とコンテンツ管理システムです.作曲家はDrupalの様々な依存関係をすべてまっすぐに保つのを助ける依存マネージャです.
Symfonyはあなたが調整しなければならないことになっていない人気のPHPフレームワークです.ダイレクトアップグレードの間にエラーを投げていたし、私は直接移行から私のアプローチを変更しているコアの理由を構築していた.

アプローチ
私の戦略
  • Drupal 9.0.1から起動します.
  • 私のローカルセットアップのためのランドマークを使用します.
  • バニラサイトを起動し、バックアップを行います.
  • 設定.PHPファイルとディレクトリ構造は、Acquia Cloudにある現在のサイトの後にモデル化されます.
  • 我々の現在のサイトから私は新しいベンダー、ウェブディレクトリ、および9.0.1のすべてのキーディレクトリにスワップしました.

  • Drupal 9インスタンスからの起動
    最初はDrupal 8からDrupal 9に直接アップグレードしようとしました.これはあまりにも多くの合併症を導入したので、私は地面から9.0.1のサイトを構築するに切り替えている.
    いったん準備ができたら、contribモジュールを追加し、データベースをインポートする予定です.
    地面からD 9サイトを構築し、次に資産を追加する私のアプローチはいくつかの理由である.
  • 私たちは、ローカルシステムをAcquia devデスクトップからランドマークに切り替えたいです.
  • D 9に直接インストールするD 8のアップグレードは、解析するのが難しいsymfony依存関係の問題を紹介します.
  • 稲妻モジュールのアップグレードは特に厳しいので、D 9を起動すると、より簡単に正しいバージョンを再インストールすることができます.

  • キーホルダー
    私が学んだいくつかのこと
    あなたのWebrootはToplevelされていない場合は、作曲家の複数の場所でそれを更新する必要があります.JSON
    あなたが一度にすべてを更新することができます作曲家と鶏と卵の状況になるcomposer require resource1:x.x.x resource:y.y.y --with-all-dependencies時々作曲家を消し去る.ロックとベンダーディレクトリは素晴らしい方法です.
    私は、私がより発見するように、多分、このポストを更新します.これが他のDrupallersをそこに援助することを望みます.

    一般更新
    下記は、私が1日(8/3/21)を通して掲示した若干の更新です.
  • 私のローカルブランクハブサイトは働いています.ああ!
  • 私は現在、徐々に作曲家とリストをインストールしないものをモジュールを追加しています.それらのために、我々がコードアップグレードの前に我々の20 + Liveサイトで彼らをオフにすることができるかどうか、我々は見ます.
  • 作曲家に対する私の信頼は、昨日、大失敗の後、再び戻っています.
  • 必要なモジュールをインストールした後、私はテーマをインストールしました.これは、いくつかの互換性を変更する必要があります.YMLファイル.ベースのテーマがインストールされている間、サイトをバックアップすることは重要です.置換core:'8.x' with core_version_requirement: ^8 || ^9theme.info.yml ファイルは必要だが十分ではない.
  • 私はちょうどアップグレード状態モジュールをインストールしました.誰が約10?私はまだ9になろうとしている!また、私は私のテーマが互換性がない理由を把握するのに役立ちます.この方法で私は彼らがなぜそれらを有効にすることなく動作しないのかを学ぶことができます.
  • よく、よく、よく.テーマは緑色になっていますが、依存性注入に関連したsymfony errorを得ることに戻ります.これは戦略を切り替えるために私を運転したものです、しかし、現在、私はそれを引き起こすもののより良い考えがあります.それはテーマの問題のようです.
  • 管理者/レポート/dblogからのエラーは以下です. Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: You have requested a non-existent service "path.alias_manager". Did you mean this: "path_alias.manager"? in Drupal\Component\DependencyInjection\Container->get() (line 151 of /app/docroot/core/lib/Drupal/Component/DependencyInjection/Container.php).
  • 少しの検索の後、私は横切ったthis resource , どちらが鍵ですか.私は変更しなければならなかったpath.alias_manager to path_alias.manager 三つの場所で.
  • それは働いた!Portoのテーマが表示されます.
  • ハブサイトからデータベースをインポートするとエラーが発生します.
  • 私はすべてのサイトの資産を再追加することによって学んでいるのは驚くべきことです.私は、私が我々のプロフィールで若干のプロフィールを必要としたのを見ますprofiles ディレクトリ.でupdate.php ページは、私がオプションであると思った束のより多くのなくなっているモジュールを見ます.
  • すべてのモジュールが追加されます.ライトニングメディアとEntityCount埋め込みモジュールを手動で更新画面に取得するために追加する必要があります.
  • 私は今、112データベースの更新を通過しています.
  • 白いスクリーンを得るlando logs 指定されたコードの1つの行がテーマであることを示しています.変わりつつあるentity_load_multiple_by_properties to loadByProperties インマイporto.theme ファイル.
  • 最初のサイト作品!
  • ちょうどリモートサイトでテストはまだ進行中の作業です.設定を変更する必要があります.PHPが、我々は移動している.それは今のすべてです!



  • 7 Tips on Upgrading from Drupal 8 to Drupal 9