Commerce バージョンのアップグレード
Adobe Commerce コードベースを新しいバージョンにアップグレードできます。 環境をアップグレードする前に、インストール ガイドの必要システム構成を参照して、最新のソフトウェアバージョン要件を確認してください。
環境タイプ(開発、ステージング、実稼動)に応じて、アップグレード タスクには次のものが含まれます。
-
サードパーティ製の拡張機能を、サポートされている最新バージョンにアップグレードします。
-
MariaDB (MySQL)、OpenSearch、RabbitMQ、RedisまたはValkeyに必要なサービスバージョンで
.magento/services.yamlファイルを更新して、対象のAdobe Commerce バージョンとの互換性を維持します。- 開発/統合/PR ブランチの場合、これらの変更は環境設定の一部として直接使用されます。
- Pro ステージング環境および実稼動環境の場合、Adobe Commerce サポートは実際のサービスのインストールまたは更新を実行しますが、その内容はデプロイメント中に検証されるため、
.magento/services.yamlを最新の状態に保ち、完全かつ有効にしておく必要があります。
-
フックと環境変数の新しい設定で
.magento.app.yamlファイルを更新します。
プロサービスのサポート
ステージングまたは実稼動環境でPro サービスのアップグレードをリクエストして完了するには、次の手順に従います。
-
環境
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の命名規則を使用する必要があります。 -
Adobeの2部構成のプロセスを通じてアップグレードスケジュールを確認します。最初にリクエストされた日時を確認してから、サポートがインフラストラクチャチームに最終確認のために送信します。
プロダクションの変更(Proのみ)には、週末を除く少なくとも2営業日前の通知が必要です。 例えば、クラウドインフラチームは、水曜日までに月曜日のアップグレードを承認する必要があります。 ピーク時の需要に対応し、リードタイムを向上できます。 遅延を回避するには、最初のリクエストに対して、少なくとも48時間前に応答する必要があります。 アップグレードは、最終確認を受け取るまでスケジュールされたとは見なされません。
note NOTE UTCでメンテナンスウィンドウを提供します。 ステージングのアップグレードは事前にスケジュールされておらず、通常はリクエストと同じ日に完了します。 RabbitMQのアップグレード後、環境を再デプロイしてメッセージキューを再初期化します。 -
実稼動環境でアップグレードをスケジュールする前に、ステージング環境または統合環境でアップグレードを検証します。
サードパーティモジュール、カスタムコード、依存関係の互換性による問題は、サービスのアップグレードに続く再展開中に頻繁に発生します。 複数のサービスのアップグレードを一度に1つずつ検証するには、ValkeyまたはRedis、RabbitMQ、OpenSearch、MariaDBを順番に順番に実行します。 これは必要な順序ではありません。 データベースのアップグレードは、最も高い運用上の影響を及ぼし、最も注意を払う必要があります。
Adobeでは、タイミングは環境と関連するサービスによって異なるため、実稼動メンテナンスウィンドウの正確な期間を事前に保証しません。 実稼動ウィンドウを計画する際に、ステージングのアップグレードにかかる時間を実用的な見積もりとして使用します。
-
Adobe Commerce アプリケーションのバージョンが変更されない場合でも、Adobeがサービスのアップグレードを完了した後に環境を再デプロイします。
アップグレードにOpenSearchが含まれる場合は、完全なインデックス再作成も計画します。 Adobeでは、サービスのアップグレードに対してダウンタイムがゼロになることを保証できないため、再デプロイし、必要に応じてインデックスを再作成し、ストアフロントと管理者がサイトを再開する前に検証できるようにするメンテナンスウィンドウを計画します。
アップグレード中の顧客の可用性
スケジュールされた実稼動アップグレード ウィンドウの期間中、チームまたは実装パートナーの担当者がオンラインで利用できる必要があります。 トラフィックが少ない期間にスケジュールを設定しても、アップグレードのハンドオフにはなりません。 Adobeは、クラウドインフラストラクチャのアップグレードを管理しますが、アプリケーションの動作、統合、カスタムコード、ビジネスワークフローを検証することはできません。
使用可能な担当者は、次の操作を行う必要があります。
- アップグレード中およびアップグレード後のストアフロントと重要なビジネス トランザクションを監視します。
- Adobe サポートまたはCloud Infrastructure チームからの質問に回回答します。
- 統合、拡張機能、カスタマイズ、cron ジョブ、キュー、およびその他の顧客固有の機能が期待どおりに機能していることを確認してください。
- チェックアウト、カタログビュー、検索、ログイン、注文処理など、 ビジネスに不可欠なワークフローを検証します。
- アップグレードのコンテキストとログは引き続き利用可能ですが、レポートの予期しない動作が速やかに発生しました。
メンテナンスモード
メンテナンスモードは、お客様の可用性の代わりにはなりません。 メンテナンスモードは、ストアフロントへのアクセスをブロックしますが、アプリケーションサービス、統合、キュー、cron ジョブ、チェックアウトなどの顧客固有の機能は検証しません。
計画作業にメンテナンスモードが必要な場合は、Adobe サポートと連携して使用し、そのアップグレードの手順に従います。 その後、作業の完了を検討する前に、ストアフロントとクリティカルワークフローが正常に動作していることを確認します。
設定ファイル
クラウドインフラストラクチャまたはアプリケーション上のAdobe Commerceのデフォルト設定の変更を考慮するには、アプリケーションをアップグレードする前にプロジェクト設定ファイルを更新します。 最新のデフォルトは、magento-cloud GitHub リポジトリ にあります。
composer.json
アップグレードする前に、常にcomposer.json ファイルの依存関係がAdobe Commerce バージョンと互換性があることを確認してください。
Adobe Commerce バージョン 2.4.4以降のcomposer.json ファイルを更新するには**
-
次の
allow-pluginsをconfigセクションに追加します。code language-json "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true, "laminas/laminas-dependency-plugin": true, "magento/*": true } }, -
次のプラグインを
requireセクションに追加します。code language-json "require": { "magento/composer-root-update-plugin": "^2.0.3" }, -
次のコンポーネントを
extra:component_pathsセクションに追加します。code language-json "extra": { "component_paths": { "tinymce/tinymce": "lib/web/tiny_mce_5" }, }, -
ファイルを保存します。 まだブランチに変更をコミットまたはプッシュしないでください。
-
アップグレードプロセスを続行します。
環境バックアップ
Adobeでは、アップグレードの前にインスタンスのバックアップを作成することをお勧めします。 統合環境、ステージング環境および実稼動環境をバックアップするには、次の手順を実行します。
統合環境データベースとコードをバックアップするには:
-
リモートデータベースのローカルバックアップを作成します。
code language-bash magento-cloud db:dumpnote NOTE magento-cloud db:dumpコマンドはmysqldump コマンドを--single-transactionフラグで実行します。これにより、テーブルをロックせずにデータベースをバックアップできます。 -
コードとメディアをバックアップします。
code language-bash php bin/magento setup:backup --code [--media]ソース管理に既に多数の静的ファイルがある場合は、オプションで
[--media]を省略できます。
デプロイする前に、ステージング環境または実稼動環境のデータベースをバックアップするには、:
-
SSHを使用してリモート環境にログインします。
-
データベースダンプ を作成します。 DB ダンプのターゲットディレクトリを選択するには、
--dump-directoryオプションを使用します。code language-bash vendor/bin/ece-tools db-dumpダンプ操作により、リモート プロジェクト ディレクトリに
dump-<timestamp>.sql.gzアーカイブ ファイルが作成されます。 データベースのバックアップ を参照してください。
アプリケーションのアップグレード
アプリケーションをアップグレードする前に、最新のソフトウェアバージョン要件について、 サービスバージョン の情報を確認してください。
アプリケーションのバージョンをアップグレードするには:
-
ローカル ワークステーションで、プロジェクト ディレクトリに移動します。
-
ターゲット アップグレード バージョンの バージョン制約を設定します。 この手順は、ターゲットバージョンが既存の制約の範囲外にある場合にのみ必要です。
code language-bash composer require-commerce "magento/magento-cloud-metapackage":">=CURRENT_VERSION <NEXT_VERSION" --no-updatenote NOTE バージョン制約の構文を使用して、 ece-toolsパッケージを正常に更新する必要があります。 アップグレードに使用している アプリケーションテンプレート のバージョンのcomposer.jsonファイルにバージョン制約があります。 -
コア Commerce アップグレード バージョンで
composer.jsonファイルを更新します。code language-bash composer require-commerce magento/product-enterprise-edition 2.4.8 --no-update -
B2Bを使用している場合は、
composer.jsonファイルを サポートされているバージョン のCommerceに更新します。code language-bash composer require-commerce magento/extension-b2b 1.5.2 --no-update -
プロジェクトの依存関係を更新する:
code language-bash composer update -
現在適用されているパッチを確認します。
-
m2-hotfixesディレクトリにパッチがインストールされている場合、Adobe Commerce サポートチケット を送信し、Adobe Commerce サポートと協力して、新しいバージョンにまだ適用できるパッチを確認します。 該当しないパッチをm2-hotfixesディレクトリから削除します。 -
.magento.env.yamlファイルに適用されている[品質パッチ ]がある場合は、新しいバージョンにまだ適用できるかどうかを確認します。.magento.env.yamlファイルのQUALITY_PATCHESセクションから該当しないパッチを削除します。
方法1: 品質パッチのリリースノートで該当するバージョンを確認する
方法2: 使用可能なパッチとステータスを表示
方法3: パッチの検索
-
-
コードの変更を追加、コミット、プッシュします。
code language-bash git add -Acode language-bash git commit -m "Upgrade"code language-bash git push origin <branch-name>Composerが基本パッケージをマーシャルする方法のため、変更されたすべてのファイルをソース管理に追加するには、
git add -Aが必要です。composer installとcomposer updateの両方が、基本パッケージ (magento/magento2-baseとmagento/magento2-ee-base)からパッケージルートにファイルをマーシャルします。コンポーザーのマーシャルが新しいバージョンのAdobe Commerceに属するファイル。これらの同じファイルの古いバージョンを上書きします。 現在、Adobe Commerceではマーシャリングは無効になっているので、マーシャリングされたファイルをソースコントロールに追加する必要があります。
-
アップグレードを完了するには、デプロイメントを待ちます。
-
SSHを使用してログインし、バージョンを確認して、統合環境、ステージング環境、実稼動環境のアップグレードを確認します。
code language-bash php bin/magento --version
拡張機能をアップグレード
Marketplaceや他社のサイトで、サードパーティの拡張機能やモジュールページを確認し、Adobe CommerceおよびAdobe Commerce on cloud インフラストラクチャのサポートを確認します。 サードパーティの拡張機能とモジュールをアップグレードする必要がある場合は、拡張機能を無効にして新しい統合ブランチで作業することをお勧めします。
拡張機能を確認してアップグレードするには:
-
ローカルワークステーションにブランチを作成します。
-
必要に応じて拡張機能を無効にします。
-
利用可能な場合は、拡張機能のアップグレードをダウンロードします。
-
サードパーティのドキュメントに記載されているように、アップグレードをインストールします。
-
拡張機能を有効にしてテストします。
-
コードの変更を追加し、コミットし、リモートにプッシュします。
-
統合環境でプッシュしてテストします。
-
プリプロダクション環境でテストするには、ステージング環境にプッシュします。
Adobeでは、サイト起動プロセスにアップグレードされた拡張機能を含め、実稼動環境 before をアップグレードすることをお勧めします。
アップグレードのトラブルシューティング
アップグレードが失敗した場合、ストアフロントまたは管理パネルにアクセスできないことを示すエラーメッセージがブラウザーに表示されます。
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number: <error-number>
エラーを解決するには:
-
ローカル ワークステーションで、プロジェクト ディレクトリに移動します。
-
SSHを使用してリモート環境にログインします。
code language-bash magento-cloud ssh -
./app/var/report/<error number>ファイルを開きます。 -
ログを調べ問題の原因を特定します。
-
コードの変更を追加、コミット、プッシュします。
code language-bash git add -A && git commit -m "Fixed deployment failure" && git push origin <branch-name>