ドキュメント

キャッシュフラッシュのデプロイメントに失敗しました:「キャッシュ」名前空間にコマンドが定義されていません」エラー

最終更新日: 2025年5月5日

クラウドインフラストラクチャ上のAdobe Commerceで「cache」名前空間にコマンドが定義されていません エラーが発生してデプロイが失敗した場合は、それらの設定から残った無効な行を特定します。 1 つの web サイトしかない場合、web サイトの 2 番目のテストは適用されず、ストアのテストのみが必要になります。

説明

環境

クラウドインフラストラクチャー 2.4.x 上のAdobe Commerce

問題

警告 :実稼動サイトでバックアップを行う場合は、次の手順を実行する前に、まずデータベースをバックアップしてください。

この記事では、デプロイメントが失敗し、ログ内のエラーのいずれかが次のような場合の問題の解決策を説明します。

[ YEAR-DAYTIME]  ERROR: [ 127]  The command "php ./bin/magento cache:flush --ansi --no-interaction" failed.
        There are no commands defined in the "cache" namespace.
...
      W:     There are no commands defined in the "cache" namespace.

再現手順 :

デプロイを試みます。

期待される結果 :

正常にデプロイされました。

実際の結果 :

デプロイに失敗しました。 ログには、「キャッシュ名前空間にコマンドがありません のようなメッセージを含むデプロイメントエラーが表示されます。

原因

core_config_data テーブルには、データベースに存在しなくなったストア ID または web サイト ID の設定が含まれています。 この問題は、別のインスタンスまたは環境からデータベースバックアップを読み込んだ場合、関連するストアまたは web サイトが削除されていても、これらの範囲の設定はデータベースに残ります。

解決策

1 つの web サイトしかない場合、web サイトの 2 番目のテストは適用されず、ストアのテストのみが必要になります。

この問題を解決するには、これらの設定に残っている無効な行を特定します。

  1. サーバーに SSH で接続し、次のコマンドを実行します。

    bin/magento
    
  2. エラーメッセージは、削除されたサイトからデータベースに残っている行とテーブルを示している場合があります。 例えば、次のエラーは、リクエストされたストアが見つからなかったことを示します。

    ...
        In StoreRepository.php line 112:
    
        The store that was requested wasn't found. Verify the store and try again.
    
  3. この MySQL クエリを実行して、手順 2 のエラーメッセージで示されるストアが見つからないことを確認します。

    select distinct scope_id from core_config_data where scope='stores' and scope_id not in (select store_id from store);
    
  4. 次の MySQL ステートメントを実行して、無効な行を削除します。

    delete from core_config_data where scope='stores' and scope_id not in (select store_id from store);
    
  5. もう一度このコマンドを実行します。

    bin/magento
    

    次のような、要求された ID X の web サイトが見つからなかったことを示すエラーが表示された場合は、web サイトおよびストアからデータベースに残っている設定が削除されています。

    In WebsiteRepository.php line 110:
    
        The website with id X that was requested wasn't found. Verify the website and try again.
    

    この MySQL クエリを実行して、web サイトが見つからないことを確認します。

    select distinct scope_id from core_config_data where scope='websites' and scope_id not in (select website_id from store_website);
    
  6. 次の MySQL ステートメントを実行して、Web サイト設定から無効な行を削除します。

    delete from core_config_data where scope='websites' and scope_id not in (select website_id from store_website);
    

関連資料

  • Adobe Commerce デプロイメントのトラブルシューティング
  • クラウド UI に「ログのスニッピング」エラーがあるかどうかをデプロイメントログで確認する
  • Commerce実装プレイブックの データベーステーブルを変更する際のベストプラクティス
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f