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

Adobe Commerceのコードベースを新しいバージョンにアップグレードできます。 プロジェクトをアップグレードする前に、 必要システム構成 が含まれる インストール 最新のソフトウェアバージョン要件に関するガイド。

プロジェクトの設定に応じて、アップグレードタスクには次のものが含まれる場合があります。

  • 新しいAdobe Commerce バージョンとの互換性を確保するために、MariaDB (MySQL)、OpenSearch、RabbitMQ、Redis などの更新サービスを提供しています。
  • 古い構成管理ファイルを変換します。
  • を更新 .magento.app.yaml フックと環境変数の新しい設定を持つファイル。
  • サードパーティの拡張機能をサポートされている最新バージョンにアップグレードします。
  • を更新 .gitignore ファイル。
TIP
アップグレードまたはパッチ適用プロセスを開始する前に、統合環境からアクティブなブランチを作成し、新しいブランチをローカルワークステーションにチェックアウトします。 分岐をアップグレードまたはパッチプロセスに割り当てると、進行中の作業への干渉を回避できます。
TIP
Pro プロジェクトの場合は、次の操作が必要です Adobe Commerce サポートチケットを送信 をインストールまたは更新するには サービス 。対象: Staging および Production 環境のみ。
必要なサービス変更を示し、更新済みを含める .magento.app.yaml および services.yaml ファイルを開き、PHP のバージョンをチケットに書き込みます。 PHP のバージョン、拡張機能、または環境設定のセルフサービスの変更については、を参照してください。 PHP 設定 。対象: アプリケーション設定.
に変更を加えた場合 ライブ 実稼動環境(Pro のみ)、クラウドインフラストラクチャチームがリソースをマーシャリングし、安全なアップグレードを実施するのに十分な時間を確保するために、少なくとも 48 時間の注意事項を提供する必要があります。

古いバージョンからのアップグレード

2.1 より前のCommerce バージョンからアップグレードを開始する場合は、Adobe Commerce コードベースの一部の制限事項が次の機能に影響する可能性があります 更新 特定の ECE ツールのリリースまたは アップグレード を次にサポートされるCommerceのバージョンに変更します。 次の表を使用して、最適なパスを決定します。

現在のバージョン
アップグレードパス
2.1.3 以前
続行する前に、Adobe Commerceをバージョン 2.1.4 以降にアップグレードしてください。 次に、を実行します ece-Tools をインストールするための 1 回限りのアップグレード.
2.1.4 - 2.1.14
ECE ツールの更新 パッケージ。
のリリースノートを参照してください 2002.0.9 2002.0.x 以降のリリース
2.1.15 - 2.1.16
ECE ツールの更新 パッケージ。
のリリースノートを参照してください2002.0.9 およびあと。
2.2.x 以降
ECE ツールの更新 パッケージ。
のリリースノートを参照してください2002.0.8 およびあと。
NOTE
を含まないバージョンのAdobe Commerceをクラウドインフラストラクチャ上で使用する場合 ece-tools パッケージ化する場合は、次を実行する必要があります。 1 回限りのアップグレード をクラウドプロジェクトに追加して、非推奨(廃止予定)のパッケージを削除します。 現在を使用している場合 ece-tools パッケージを更新する必要があります。次を参照してください。 ECE-Tools パッケージの更新.

設定管理

2.1.4 以降や 2.2.x 以降など、Adobe Commerceの以前のバージョンでは、を使用していました config.local.php 構成管理のファイル。 Adobe Commerce バージョン 2.2.0 以降では、 config.php ファイル。以下とまったく同じように機能します。 config.local.php ファイルですが、有効なモジュールのリストや追加の設定オプションなど、様々な設定があります。

古いバージョンからアップグレードする場合は、 config.local.php 新しいを使用するファイル config.php ファイル。 次の手順を使用して、設定ファイルをバックアップし、作成します。

テンポラリを作成するには config.php ファイル:

  1. のコピーを作成 config.local.php ファイルと名前 config.php.

  2. このファイルをに追加します app/etc プロジェクトのフォルダー。

  3. ブランチにファイルを追加してコミットします。

  4. ファイルを統合ブランチにプッシュします。

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

WARNING
アップグレード後、 config.php ファイルを作成し、新しい完全なファイルを生成します。 このファイルを削除して置き換えることができるのは、1 回だけです。 新しいの生成後、完了 config.php ファイルを削除して新しいファイルを生成することはできません。 参照: 設定管理とパイプラインデプロイメント.

Zend Framework Composer の依存関係の検証

へのアップグレード時 2.2.x から 2.3.x 以降 Zend フレームワークの依存関係がに追加されていることを確認します。 autoload のプロパティ composer.json ラミナスをサポートするファイル。 このプラグインは、Laminas プロジェクトに移行された Zend フレームワークの新しい要件をサポートします。 参照: Zend フレームワークの Laminas プロジェクトへの移行Magento DevBlog.

を確認するには auto-load:psr-4 設定:

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

  2. 統合ブランチを確認します。

  3. を開きます composer.json ファイルをテキストエディターで開きます。

  4. を確認します autoload:psr-4 コントローラの依存関係用の Zend プラグインマネージャーの実装に関する節。

    code language-json
     "autoload": {
        "psr-4": {
           "Magento\\Framework\\": "lib/internal/Magento/Framework/",
           "Magento\\Setup\\": "setup/src/Magento/Setup/",
           "Magento\\": "app/code/Magento/",
           "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
        },
    }
    
  5. Zend 依存性がない場合は、 composer.json ファイル:

    • 次の行をに追加します。 autoload:psr-4 セクション。

      code language-json
      "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
      
    • プロジェクトの依存関係を更新します。

      code language-bash
      composer update
      
    • コードの変更を追加、コミットおよびプッシュします。

      code language-bash
      git add -A
      
      code language-bash
      git commit -m "Add Zend plugin manager implementation for controllers dependency for Laminas support"
      
      code language-bash
      git push origin <branch-name>
      
    • 変更内容をステージング環境に結合してから、実稼動環境に結合します。

設定ファイル

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

.magento.app.yaml

に含まれる値を常に確認する .magento.app.yaml ファイル(インストールされているバージョン用)。アプリケーションのビルド方法とクラウドインフラストラクチャへのデプロイ方法を制御します。 次の例はバージョン 2.4.7 で、Composer 2.7.2 を使用します。この build: flavor: プロパティは Composer 2.x には使用されません。を参照してください。 Composer 2 のインストールと使用.

を更新するには .magento.app.yaml ファイル:

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

  2. を開いて編集する magento.app.yaml ファイル。

  3. PHP オプションを更新します。

    code language-yaml
    type: php:8.3
    
    build:
        flavor: none
    dependencies:
        php:
            composer/composer: '2.7.2'
    
  4. を変更する hooks プロパティ build および deploy コマンド。

    code language-yaml
    hooks:
        # We run build hooks before your application has been packaged.
        build: |
            set -e
            composer install
            php ./vendor/bin/ece-tools run scenario/build/generate.xml
            php ./vendor/bin/ece-tools run scenario/build/transfer.xml
        # We run deploy hook after your application has been deployed and started.
        deploy: |
            php ./vendor/bin/ece-tools run scenario/deploy.xml
        # We run post deploy hook to clean and warm the cache. Available with ECE-Tools 2002.0.10.
        post_deploy: |
            php ./vendor/bin/ece-tools run scenario/post-deploy.xml
    
  5. 次の環境変数をファイルの末尾に追加します。

    Adobe Commerce 2.2.x から 2.3.x の場合 –

    code language-yaml
    variables:
        env:
            CONFIG__DEFAULT__PAYPAL_ONBOARDING__MIDDLEMAN_DOMAIN: 'payment-broker.magento.com'
            CONFIG__STORES__DEFAULT__PAYMENT__BRAINTREE__CHANNEL: 'Magento_Enterprise_Cloud_BT'
            CONFIG__STORES__DEFAULT__PAYPAL__NOTATION_CODE: 'Magento_Enterprise_Cloud'
    

    Adobe Commerce 2.4.x の場合 –

    code language-yaml
    variables:
        env:
            CONFIG__DEFAULT__PAYPAL_ONBOARDING__MIDDLEMAN_DOMAIN: 'payment-broker.magento.com'
            CONFIG__STORES__DEFAULT__PAYPAL__NOTATION_CODE: 'Magento_Enterprise_Cloud'
    
  6. ファイルを保存します。 リモート環境に対する変更は、まだコミットまたはプッシュしないでください。

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

composer.json

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

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

  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. アップグレードプロセスを続行します。

プロジェクトのバックアップ

アップグレードの前に、プロジェクトのバックアップを作成することをお勧めします。 統合環境、ステージング環境、実稼動環境をバックアップするには、次の手順を使用します。

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

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

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

    code language-bash
    composer update
    
  4. コードの変更を追加、コミットおよびプッシュします。

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

    git add -A は、Composer マーシャリング ベース パッケージの方式により、変更されたすべてのファイルをソース コントロールに追加するために必要です。 両方 composer install および composer update ベースパッケージからファイルをマーシャリングする(magento/magento2-base および magento/magento2-ee-base)をパッケージルートに追加します。

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

  5. デプロイメントが完了するまで待ちます。

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

    code language-bash
    php bin/magento --version
    

config.php ファイルの作成

で述べたように 設定管理、アップグレード後に、更新済みのを作成する必要があります config.php ファイル。 統合環境の管理者を通じて、追加の設定変更を行います。

システム固有の設定ファイルを作成するには:

  1. ターミナルから、SSH コマンドを使用して /app/etc/config.php 環境用のファイルです。

    code language-bash
    ssh <SSH-URL> "<Command>"
    

    例えば Pro の場合、を実行するには scd-dumpintegration ブランチ:

    code language-bash
    ssh <project-id-integration>@ssh.us.magentosite.cloud "php vendor/bin/ece-tools config:dump"
    
  2. を転送 config.php を使用してローカル ワークステーションにファイルを送信する rsync または scp. このファイルはブランチに対してのみローカルに追加できます。

    code language-bash
    rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
    
  3. コードの変更を追加、コミットおよびプッシュします。

    code language-bash
    git add app/etc/config.php && git commit -m "Add system-specific configuration" && git push origin master
    

    これにより、更新済みのが生成されます /app/etc/config.php モジュールリストと設定が記述されたファイルです。

WARNING
アップグレードの場合、を削除します config.php ファイル。 このファイルをコードに追加すると、以下を達成できます ではない 削除します。 設定を削除または編集する必要がある場合は、ファイルを手動で編集します。

アップグレード拡張機能

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

拡張機能を検証およびアップグレードするには:

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

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

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

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

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

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

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

  8. ステージング環境にプッシュして、実稼動前の環境でテストします。

実稼動Adobeをアップグレードすることを強くお勧めします 次の前 アップグレードされた拡張機能をサイト起動プロセスに含めます。

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
05f2f56e-ac5d-4931-8cdb-764e60e16f26