Commerce バージョンのアップグレード

Adobe Commerce コードベースを新しいバージョンにアップグレードできます。 環境をアップグレードする前に、インストール ガイドの必要システム構成を参照して、最新のソフトウェアバージョン要件を確認してください。

環境タイプ(開発、ステージング、実稼動)に応じて、アップグレード タスクには次のものが含まれます。

  • サードパーティ製の拡張機能を、サポートされている最新バージョンにアップグレードします。

  • MariaDB (MySQL)、OpenSearch、RabbitMQ、RedisまたはValkeyに必要なサービスバージョンで.magento/services.yaml ファイルを更新して、対象のAdobe Commerce バージョンとの互換性を維持します。

    • 開発/統合/PR ブランチの場合、これらの変更は環境設定の一部として直接使用されます。
    • Pro ステージング環境および実稼動環境の場合、Adobe Commerce サポートは実際のサービスのインストールまたは更新を実行しますが、その内容はデプロイメント中に検証されるため、.magento/services.yamlを最新の状態に保ち、完全かつ有効にしておく必要があります。
  • フックと環境変数の新しい設定で.magento.app.yaml ファイルを更新します。

TIP
アップグレードまたはパッチ適用プロセスを開始する前に、統合環境からアクティブなブランチを作成し、新しいブランチをローカル ワークステーションにチェックアウトします。 アップグレードまたはパッチプロセスにブランチを割り当てることで、進行中の作業への干渉を回避できます。

プロサービスのサポート

ステージングまたは実稼動環境でPro サービスのアップグレードをリクエストして完了するには、次の手順に従います。

  1. 環境StagingおよびProduction環境のみ​で​ サービス ​をインストールまたは更新するには、Adobe Commerce サポートチケット ​を送信します。

    チケットで、必要なサービス変更を指定し、更新された.magento.app.yamlおよび.magento/services.yaml ファイルを含め、対象のPHP バージョンをメモします。

    PHPのバージョン、Composerのアップデート、拡張機能、環境設定は、セルフサービスの変更です。 Adobeでは、PHPのバージョンに対応するようにNew Relic agentをアップデートする必要がある場合があります。 アプリケーション設定​のPHP設定を参照してください。

    note important
    IMPORTANT
    チケットフォームで「Environment」フィールドを選択する場合は、Adobeの環境命名を使用します。 例えば、その環境​ Dev ​を内部的に呼び出す場合でも、「ステージング」を選択します。 説明に内部名を記載できますが、Environment フィールドにはAdobeの命名規則を使用する必要があります。
  2. Adobeの2部構成のプロセスを通じてアップグレードスケジュール​を確認します。最初にリクエストされた日時を確認してから、サポートがインフラストラクチャチームに最終確認のために送信します。

    プロダクションの変更(Proのみ)には、週末を除く少なくとも2営業日前の通知が必要です。 例えば、クラウドインフラチームは、水曜日までに月曜日のアップグレードを承認する必要があります。 ピーク時の需要に対応し、リードタイムを向上できます。 遅延を回避するには、最初のリクエストに対して、少なくとも48時間前に応答する必要があります。 アップグレードは、最終確認を受け取るまでスケジュールされたとは見なされません。

    note
    NOTE
    UTCでメンテナンスウィンドウを提供します。 ステージングのアップグレードは事前にスケジュールされておらず、通常はリクエストと同じ日に完了します。
    RabbitMQのアップグレード後、環境を再デプロイしてメッセージキューを再初期化します。
  3. 実稼動環境でアップグレードをスケジュールする前に、ステージング環境または統合環境で​アップグレードを検証します

    サードパーティモジュール、カスタムコード、依存関係の互換性による問題は、サービスのアップグレードに続く再展開中に頻繁に発生します。 複数のサービスのアップグレードを一度に1つずつ検証するには、ValkeyまたはRedis、RabbitMQ、OpenSearch、MariaDBを順番に順番に実行します。 これは必要な順序ではありません。 データベースのアップグレードは、最も高い運用上の影響を及ぼし、最も注意を払う必要があります。

    Adobeでは、タイミングは環境と関連するサービスによって異なるため、実稼動メンテナンスウィンドウの正確な期間を事前に保証しません。 実稼動ウィンドウを計画する際に、ステージングのアップグレードにかかる時間を実用的な見積もりとして使用します。

  4. Adobe Commerce アプリケーションのバージョンが変更されない場合でも、Adobeがサービスのアップグレードを完了した後に環境​を再デプロイします。

    アップグレードにOpenSearchが含まれる場合は、完全なインデックス再作成も計画します。 Adobeでは、サービスのアップグレードに対してダウンタイムがゼロになることを保証できないため、再デプロイし、必要に応じてインデックスを再作成し、ストアフロントと管理者がサイトを再開する前に検証できるようにするメンテナンスウィンドウを計画します。

アップグレード中の顧客の可用性

スケジュールされた実稼動アップグレード ウィンドウの期間中、チームまたは実装パートナーの担当者がオンラインで利用できる必要があります。 トラフィックが少ない期間にスケジュールを設定しても、アップグレードのハンドオフにはなりません。 Adobeは、クラウドインフラストラクチャのアップグレードを管理しますが、アプリケーションの動作、統合、カスタムコード、ビジネスワークフローを検証することはできません。

使用可能な担当者は、次の操作を行う必要があります。

  • アップグレード中およびアップグレード後のストアフロントと重要なビジネス トランザクションを監視​します。
  • Adobe サポートまたはCloud Infrastructure チームからの質問に​回回答します。
  • 統合、拡張機能、カスタマイズ、cron ジョブ、キュー、およびその他の顧客固有の機能が期待どおりに機能していることを確認してください
  • チェックアウト、カタログビュー、検索、ログイン、注文処理など、 ビジネスに不可欠なワークフローを検証します。
  • アップグレードのコンテキストとログは引き続き利用可能ですが、レポート​の予期しない動作が速やかに発生しました。
TIP
Pro プロジェクトの場合、本番環境でのサービスのアップグレードには、事前のスケジュール設定と、Adobeサポートによる2部構成の確認プロセスも必要です。 Pro サービスのサポート ​を参照してください。

メンテナンスモード

メンテナンスモードは、お客様の可用性の代わりにはなりません。 メンテナンスモードは、ストアフロントへのアクセスをブロックしますが、アプリケーションサービス、統合、キュー、cron ジョブ、チェックアウトなどの顧客固有の機能は検証しません。

計画作業にメンテナンスモードが必要な場合は、Adobe サポートと連携して使用し、そのアップグレードの手順に従います。 その後、作業の完了を検討する前に、ストアフロントとクリティカルワークフローが正常に動作していることを確認します。

設定ファイル

クラウドインフラストラクチャまたはアプリケーション上のAdobe Commerceのデフォルト設定の変更を考慮するには、アプリケーションをアップグレードする前にプロジェクト設定ファイルを更新します。 最新のデフォルトは、magento-cloud GitHub リポジトリ ​にあります。

composer.json

アップグレードする前に、常にcomposer.json ファイルの依存関係がAdobe Commerce バージョンと互換性があることを確認してください。

Adobe Commerce バージョン 2.4.4以降のcomposer.json ファイルを更新するには**

  1. 次のallow-pluginsconfig セクションに追加します。

    code language-json
    "config": {
       "allow-plugins": {
          "dealerdirect/phpcodesniffer-composer-installer": true,
          "laminas/laminas-dependency-plugin": true,
          "magento/*": true
       }
    },
    
  2. 次のプラグインをrequire セクションに追加します。

    code language-json
    "require": {
        "magento/composer-root-update-plugin": "^2.0.3"
    },
    
  3. 次のコンポーネントをextra:component_paths セクションに追加します。

    code language-json
    "extra": {
       "component_paths": {
          "tinymce/tinymce": "lib/web/tiny_mce_5"
       },
    },
    
  4. ファイルを保存します。 まだブランチに変更をコミットまたはプッシュしないでください。

  5. アップグレードプロセスを続行します。

環境バックアップ

Adobeでは、アップグレードの前にインスタンスのバックアップを作成することをお勧めします。 統合環境、ステージング環境および実稼動環境をバックアップするには、次の手順を実行します。

統合環境データベースとコード​をバックアップするには:

  1. リモートデータベースのローカルバックアップを作成します。

    code language-bash
    magento-cloud db:dump
    
    note
    NOTE
    magento-cloud db:dump コマンドはmysqldump コマンドを--single-transaction フラグで実行します。これにより、テーブルをロックせずにデータベースをバックアップできます。
  2. コードとメディアをバックアップします。

    code language-bash
    php bin/magento setup:backup --code [--media]
    

    ソース管理に既に多数の静的ファイルがある場合は、オプションで[--media]を省略できます。

デプロイする前に、ステージング環境または実稼動環境のデータベースをバックアップするには、:

  1. SSHを使用してリモート環境にログインします。

  2. ​ データベースダンプ ​を作成します。 DB ダンプのターゲットディレクトリを選択するには、--dump-directory オプションを使用します。

    code language-bash
    vendor/bin/ece-tools db-dump
    

    ダンプ操作により、リモート プロジェクト ディレクトリにdump-<timestamp>.sql.gz アーカイブ ファイルが作成されます。 ​ データベースのバックアップ ​を参照してください。

アプリケーションのアップグレード

アプリケーションをアップグレードする前に、最新のソフトウェアバージョン要件について、​ サービスバージョン ​の情報を確認してください。

アプリケーションのバージョン​をアップグレードするには:

  1. ローカル ワークステーションで、プロジェクト ディレクトリに移動します。

  2. ターゲット アップグレード バージョンの​ バージョン制約を設定します。 この手順は、ターゲットバージョンが既存の制約の範囲外にある場合にのみ必要です。

    code language-bash
    composer require-commerce "magento/magento-cloud-metapackage":">=CURRENT_VERSION <NEXT_VERSION" --no-update
    
    note
    NOTE
    バージョン制約の構文を使用して、ece-tools パッケージを正常に更新する必要があります。 アップグレードに使用している​ アプリケーションテンプレート ​のバージョンのcomposer.json ファイルにバージョン制約があります。
  3. コア Commerce アップグレード バージョンでcomposer.json ファイルを更新します。

    code language-bash
    composer require-commerce magento/product-enterprise-edition 2.4.8 --no-update
    
  4. B2Bを使用している場合は、composer.json ファイルを​ サポートされているバージョン ​のCommerceに更新します。

    code language-bash
    composer require-commerce magento/extension-b2b 1.5.2 --no-update
    
  5. プロジェクトの依存関係を更新する:

    code language-bash
    composer update
    
  6. 現在適用されているパッチを確認します。

    • m2-hotfixes ディレクトリにパッチがインストールされている場合、Adobe Commerce サポートチケット ​を送信し、Adobe Commerce サポートと協力して、新しいバージョンにまだ適用できるパッチを確認します。 該当しないパッチをm2-hotfixes ディレクトリから削除します。

    • .magento.env.yaml ファイルに適用されている[品質パッチ ]がある場合は、新しいバージョンにまだ適用できるかどうかを確認します。 .magento.env.yaml ファイルのQUALITY_PATCHES セクションから該当しないパッチを削除します。

    方法1: 品質パッチのリリースノートで該当するバージョンを確認する

    方法2: 使用可能なパッチとステータスを表示

    方法3: ​ パッチの検索

  7. コードの変更を追加、コミット、プッシュします。

    code language-bash
    git add -A
    
    code language-bash
    git commit -m "Upgrade"
    
    code language-bash
    git push origin <branch-name>
    

    Composerが基本パッケージをマーシャルする方法のため、変更されたすべてのファイルをソース管理に追加するには、git add -Aが必要です。 composer installcomposer updateの両方が、基本パッケージ (magento/magento2-basemagento/magento2-ee-base)からパッケージルートにファイルをマーシャルします。

    コンポーザーのマーシャルが新しいバージョンのAdobe Commerceに属するファイル。これらの同じファイルの古いバージョンを上書きします。 現在、Adobe Commerceではマーシャリングは無効になっているので、マーシャリングされたファイルをソースコントロールに追加する必要があります。

  8. アップグレードを完了するには、デプロイメントを待ちます。

  9. SSHを使用してログインし、バージョンを確認して、統合環境、ステージング環境、実稼動環境のアップグレードを確認します。

    code language-bash
    php bin/magento --version
    

拡張機能をアップグレード

Marketplaceや他社のサイトで、サードパーティの拡張機能やモジュールページを確認し、Adobe CommerceおよびAdobe Commerce on cloud インフラストラクチャのサポートを確認します。 サードパーティの拡張機能とモジュールをアップグレードする必要がある場合は、拡張機能を無効にして新しい統合ブランチで作業することをお勧めします。

拡張機能を確認してアップグレードするには:

  1. ローカルワークステーションにブランチを作成します。

  2. 必要に応じて拡張機能を無効にします。

  3. 利用可能な場合は、拡張機能のアップグレードをダウンロードします。

  4. サードパーティのドキュメントに記載されているように、アップグレードをインストールします。

  5. 拡張機能を有効にしてテストします。

  6. コードの変更を追加し、コミットし、リモートにプッシュします。

  7. 統合環境でプッシュしてテストします。

  8. プリプロダクション環境でテストするには、ステージング環境にプッシュします。

Adobeでは、サイト起動プロセスにアップグレードされた拡張機能を含め、実稼動環境​ before ​をアップグレードすることをお勧めします。

NOTE
アプリケーションのバージョンをアップグレードすると、アップグレードプロセスがFastly CDN モジュール ​の最新バージョンに自動的に更新されます。

アップグレードのトラブルシューティング

アップグレードが失敗した場合、ストアフロントまたは管理パネルにアクセスできないことを示すエラーメッセージがブラウザーに表示されます。

There has been an error processing your request
Exception printing is disabled by default for security reasons.
  Error log record number: <error-number>

エラーを解決するには:

  1. ローカル ワークステーションで、プロジェクト ディレクトリに移動します。

  2. SSHを使用してリモート環境にログインします。

    code language-bash
    magento-cloud ssh
    
  3. ./app/var/report/<error number> ファイルを開きます。

  4. ​ ログを調べ問題の原因を特定します。

  5. コードの変更を追加、コミット、プッシュします。

    code language-bash
    git add -A && git commit -m "Fixed deployment failure" && git push origin <branch-name>
    
recommendation-more-help
commerce-on-cloud-help-cloud-guide