REGEXP_LIKE 関数がないため、B2B 1.5.2 へのアップグレードが SQL 構文エラーで失敗します
最終更新日: 2025年5月5日
- トピック:
- B2B
作成対象:
- 管理者
- 開発者
B2B 1.5.2 に更新した後、
Magento_Company
モジュールをアップグレードする際にパフォーマンスの問題が発生した場合は、添付の ACSD-65540_B2B_1.5.2_DEPENDENT_ACSD-65684_B2B_1.5.2.patch を適用します。詳しくは、Adobe Commerce ナレッジベースの B2B 1.5.2 アップデート後のMagento_Company モジュールのアップグレードにおけるパフォーマンスの問題を参照してください。
この記事では、company_structure
テーブルを更新しようとしたときに REGEXP_LIKE
関数が見つからなかったことが原因で発生する SQL 構文エラーのホットフィックスを示します。
影響を受ける製品とバージョン
- Adobe Commerce(すべてのデプロイメント方法) 2.4.6-px + B2B 1.5.2 (MariaDB 10.6 を使用)
- Adobe Commerce(すべてのデプロイメント方法) 2.4.7-px + B2B 1.5.2 (MariaDB 10.6 を使用)
問題
company_structure
テーブルの更新時に REGEXP_LIKE
関数が見つからないため、B2B バージョン 1.5.2 へのアップグレードが失敗し、SQL 構文エラーが発生します。
前提条件 :
- MariaDB 10.6
- Adobe Commerce 2.4.6x または 2.4.7x
- B2B バージョン 1.5.0 または 1.5.1
再現手順 :
- 会社を親会社に割り当てて、会社の階層を確立します。 詳しくは、Adobe Commerce B2B ガイドの 会社階層の管理を参照してください。
- B2B を 1.5.2 バージョンにアップグレードします。
期待される結果 :
アップグレードが正常に完了しました。
実際の結果 :
bin/magento setup:upgrade
が次のエラーで失敗します:
Unable to apply data patch Magento\Company\Setup\Patch\Data\SetCompanyForStructure for module Magento_Company. Original exception message: SQLSTATE[42000]: Syntax error or access violation: 1305 FUNCTION REGEXP_LIKE does not exist, query was: UPDATE `company_structure` SET `company_id` = ? WHERE (REGEXP_LIKE(path, '^123(/.+)?$'))
解決策
この問題を解決するには、次の手順を実行します。
-
B2B モジュールを 1.5.2 バージョンに更新します。
composer require magento/module-b2b:1.5.2 --no-update composer update magento/module-b2b
-
添付の ACSD-65540_B2B_1.5.2.zip パッチを適用します。 手順については、サポートナレッジベースの Adobeが提供する Composer パッチの適用方法を参照してください。
-
bin/magento setup:upgrade
を実行します。
クラウドパッチを使用したパッチの適用
クラウドインフラストラクチャー上のAdobe Commerceの場合は、次の手順に従います。
-
cloud-patches
モジュールのバージョンを 1.1.5 に更新します。composer require magento/magento-cloud-patches:1.1.5 --no-update composer update magento/magento-cloud-patches
-
変更をコミットしプッシュして、再デプロイを開始します。 手順については、Cloud 上のAdobe Commerce ガイドの パッチの適用を参照してください。
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a