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

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

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

  • 新しいAdobe Commerce バージョンとの互換性を確保するために、MariaDB (MySQL)、OpenSearch、RabbitMQ、Redis などの更新サービスを提供しています。
  • 古い構成管理ファイルを変換します。
  • フックと環境変数の新しい設定で .magento.app.yaml ファイルを更新します。
  • サードパーティの拡張機能をサポートされている最新バージョンにアップグレードします。
  • .gitignore ファイルを更新します。
TIP
アップグレードまたはパッチ適用プロセスを開始する前に、統合環境からアクティブなブランチを作成し、新しいブランチをローカルワークステーションにチェックアウトします。 分岐をアップグレードまたはパッチプロセスに割り当てると、進行中の作業への干渉を回避できます。
TIP
Pro プロジェクトの場合、Staging および Production 環境でのみ サービスをインストールまたは更新するには、Adobe Commerce サポートチケットを送信する必要があります。
必要なサービスの変更を示し、更新した .magento.app.yaml ファイルと services.yaml ファイルを含め、PHP バージョンをチケットに記載します。 PHP のバージョン、拡張機能、または環境設定のセルフサービスでの変更については、 アプリケーション設定 _のPHP 設定_ を参照してください。
実稼動環境(Pro のみ)に対する変更の場合は、少なくとも 48 時間の通知が必要です。 これにより、クラウドインフラストラクチャチームは、リソースをマーシャリングし、安全なアップグレードを実行するのに十分な時間を確保できます。 通知期間は、インフラストラクチャチームがリクエストを承認し、週末を除くアップグレードをスケジュールしたときに開始されます。 例えば、月曜日にサービスアップグレードを完了するには、水曜日までに予定されているアップグレードの確認を受け取る必要があります。 ピーク時の要求期間では、要求の処理により多くの時間がかかる場合があります。

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

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

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

設定管理

2.1.4 以降や 2.2.x 以降など、Adobe Commerceの以前のバージョンでは、Configuration Management に config.local.php ファイルを使用していました。 Adobe Commerce バージョン 2.2.0 以降では、config.local.php ファイルと同じように機能する config.php ファイルを使用しますが、有効なモジュールの一覧や追加の設定オプションなど、設定の種類が異なります。

古いバージョンからアップグレードする場合は、新しい config.php ファイルを使用するように config.local.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 フレームワークの依存関係が composer.json ファイルの autoload プロパティに追加され、Lamina をサポートしていることを確認してください。 このプラグインは、Laminas プロジェクトに移行された Zend フレームワークの新しい要件をサポートします。 2}MagentoDevBlog} のZend フレームワークの Laminas プロジェクトへの移行 を参照してください。

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

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

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

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

  4. Zend プラグインマネージャーを実装してコントローラの依存関係を確認するには、autoload:psr-4 の節を参照してください。

    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のバージョンと互換性があることを確認してください。

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

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

    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 コマンドは、--single-transaction フラグを指定して mysqldump コマンドを実行します。これにより、テーブルをロックせずにデータベースをバックアップできます。
  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. 現在適用されているパッチを確認します。

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

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

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

    方法 2: 使用可能なパッチおよびステータスの表示

    方法 3: パッチの検索

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

    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)からパッケージルートにファイルをマーシャリングします。

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

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

  7. 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 の場合は、integration のブランチで scd-dump を実行します。

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

    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