Commerceのバージョンのアップグレード
Adobe Commerceのコードベースを新しいバージョンにアップグレードできます。 プロジェクトをアップグレードする前に、最新のソフトウェア バージョン要件については インストールガイドの システム要件 を確認してください。
プロジェクトの設定に応じて、アップグレードタスクには次のものが含まれる場合があります。
- 新しいAdobe Commerce バージョンとの互換性を確保するために、MariaDB (MySQL)、OpenSearch、RabbitMQ、Redis などの更新サービスを提供しています。
- 古い構成管理ファイルを変換します。
- フックと環境変数の新しい設定で
.magento.app.yaml
ファイルを更新します。 - サードパーティの拡張機能をサポートされている最新バージョンにアップグレードします。
.gitignore
ファイルを更新します。
Staging
および Production
環境でのみ サービスをインストールまたは更新するには、Adobe Commerce サポートチケットを送信する必要があります。.magento.app.yaml
ファイルと services.yaml
ファイルを含め、PHP バージョンをチケットに記載します。 PHP のバージョン、拡張機能、または環境設定のセルフサービスでの変更については、 アプリケーション設定 _のPHP 設定_ を参照してください。古いバージョンからのアップグレード
2.1 より前のCommerce バージョンからアップグレードを開始する場合、Adobe Commerce コードベースの一部の制限が、特定の ECE-Tools リリースへの アップデート や、次のサポートされるCommerce バージョンへの アップグレード の機能に影響を与える可能性があります。 次の表を使用して、最適なパスを決定します。
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
ファイルを作成するには:
-
ファイルのコピー
config.local.php
作成し、config.php
という名前を付けます。 -
このファイルをプロジェクトの
app/etc
フォルダーに追加します。 -
ブランチにファイルを追加してコミットします。
-
ファイルを統合ブランチにプッシュします。
-
アップグレードプロセスを続行します。
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
設定を確認するには:
-
ローカルワークステーションで、をプロジェクトディレクトリに変更します。
-
統合ブランチを確認します。
-
composer.json
ファイルをテキストエディターで開きます。 -
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/" }, }
-
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
ファイルを更新するには:
-
ローカルワークステーションで、をプロジェクトディレクトリに変更します。
-
magento.app.yaml
ファイルを開いて編集します。 -
PHP オプションを更新します。
code language-yaml type: php:8.3 build: flavor: none dependencies: php: composer/composer: '2.7.2'
-
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
-
次の環境変数をファイルの末尾に追加します。
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'
-
ファイルを保存します。 リモート環境に対する変更は、まだコミットまたはプッシュしないでください。
-
アップグレードプロセスを続行します。
composer.json
アップグレードする前に必ず composer.json
ファイルの依存関係がAdobe Commerceのバージョンと互換性があることを確認してください。
Adobe Commerce バージョン 2.4.4 以降の composer.json
ファイルを更新するには:
-
config
セクションに次のallow-plugins
を追加します。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" }, },
-
ファイルを保存します。 ブランチの変更はまだコミットまたはプッシュしないでください。
-
アップグレードプロセスを続行します。
プロジェクトのバックアップ
アップグレードの前に、プロジェクトのバックアップを作成することをお勧めします。 統合環境、ステージング環境、実稼動環境をバックアップするには、次の手順を使用します。
統合環境のデータベースとコードをバックアップするには:
-
リモート・データベースのローカル・バックアップを作成します。
code language-bash magento-cloud db:dump
note note NOTE magento-cloud db:dump
コマンドは、--single-transaction
フラグを指定して mysqldump コマンドを実行します。これにより、テーブルをロックせずにデータベースをバックアップできます。 -
コードとメディアをバックアップします。
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 "magento/magento-cloud-metapackage":">=CURRENT_VERSION <NEXT_VERSION" --no-update
note note NOTE ece-tools
パッケージを正常に更新するには、バージョン制約構文を使用する必要があります。 アップグレードに使用する アプリケーションテンプレートのバージョンのバージョン制約をcomposer.json
ファイルで確認できます。 -
プロジェクトを更新します。
code language-bash composer update
-
コードの変更を追加、コミットおよびプッシュします。
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 install
とcomposer update
の両方で、ベースパッケージ(magento/magento2-base
とmagento/magento2-ee-base
)からパッケージルートにファイルをマーシャリングします。Composer マーシャリングが属するファイルは、古いバージョンのAdobe Commerceを上書きするために新しいバージョンのファイルです。 現在、Adobe Commerceではマーシャリングが無効になっているので、マーシャリングされたファイルをソース管理に追加する必要があります。
-
デプロイメントが完了するまで待ちます。
-
SSH を使用してログインし、バージョンを確認して、統合環境、ステージング環境、実稼動環境でアップグレードを検証します。
code language-bash php bin/magento --version
config.php ファイルの作成
設定管理で説明したように、アップグレード後は、更新された config.php
ファイルを作成する必要があります。 統合環境の管理者を通じて、追加の設定変更を行います。
システム固有の設定ファイルを作成するには:
-
ターミナルから、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"
-
rsync
またはscp
を使用して、config.php
ファイルをローカル ワークステーションに転送します。 このファイルはブランチに対してのみローカルに追加できます。code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
コードの変更を追加、コミットおよびプッシュします。
code language-bash git add app/etc/config.php && git commit -m "Add system-specific configuration" && git push origin master
これにより、モジュールリストと設定を含む、更新された
/app/etc/config.php
ファイルが生成されます。
config.php
ファイルを削除します。 このファイルをコードに追加したら、削除 ない でください。 設定を削除または編集する必要がある場合は、ファイルを手動で編集します。アップグレード拡張機能
Marketplace または他の会社のサイトでサードパーティの拡張機能およびモジュールページを確認し、クラウドインフラストラクチャでのAdobe CommerceおよびAdobe Commerceのサポートを検証します。 サードパーティの拡張機能とモジュールをアップグレードする必要がある場合、Adobeでは、拡張機能を無効にした新しい統合ブランチで作業することをお勧めします。
拡張機能を検証してアップグレードするには:
-
ローカルワークステーションにブランチを作成します。
-
必要に応じて、拡張機能を無効にします。
-
使用可能な場合は、拡張機能のアップグレードをダウンロードします。
-
サードパーティのドキュメントに記載されているとおりに、アップグレードをインストールします。
-
拡張機能を有効にしてテストします。
-
コードの変更を追加、コミットし、リモートにプッシュします。
-
統合環境でにプッシュしてテストします。
-
ステージング環境にプッシュして、実稼動前の環境でテストします。
Adobeでは、アップグレードした拡張機能をサイト起動プロセスに含め 実稼動環境 以前)をアップグレードすることを強くお勧めします。
アップグレードのトラブルシューティング
アップグレードに失敗すると、ストアフロントまたは管理パネルにアクセスできないことを示すエラーメッセージがブラウザーに表示されます。
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>