설명서

캐시 플러시 시 시 배포 실패: "'캐시' 네임스페이스에 정의된 명령이 없습니다." 오류

마지막 업데이트: 2025년 5월 5일

'캐시' 네임스페이스에 정의된 명령이 없습니다 오류가 발생하여 클라우드 인프라의 Adobe Commerce에서 배포가 실패하면 해당 구성에서 남은 잘못된 행을 식별하십시오. 웹 사이트가 한 개만 있는 경우 웹 사이트에 대한 두 번째 테스트는 적용되지 않으며 스토어에 대한 테스트만 수행하면 됩니다.

설명

환경

클라우드 인프라의 Adobe Commerce 2.4.x

문제

경고: 이 단계를 수행하기 전에 라이브 프로덕션 사이트에서 데이터베이스를 먼저 백업하십시오.

이 문서에서는 배포에 실패하고 로그의 오류 중 하나가 다음과 같은 경우 발생하는 문제에 대한 해결 방법을 제공합니다.

[ 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 또는 웹 사이트 ID에 대한 구성이 포함되어 있습니다. 이 문제는 다른 인스턴스/환경에서 데이터베이스 백업을 가져왔을 때 발생하며, 연결된 저장소/웹 사이트가 삭제되었더라도 해당 범위에 대한 구성이 데이터베이스에 남아 있을 때 발생합니다.

해결 방법

웹 사이트가 한 개만 있는 경우 웹 사이트에 대한 두 번째 테스트는 적용되지 않으며 스토어에 대한 테스트만 수행하면 됩니다.

이 문제를 해결하려면 해당 구성에서 남은 잘못된 행을 식별합니다.

  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의 웹 사이트를 찾을 수 없음을 나타내는 아래 오류와 같은 오류가 발생하면 삭제된 구성은 웹 사이트 및 저장소의 데이터베이스에 남아 있습니다.

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

    이 MySQL 쿼리를 실행하고 웹 사이트를 찾을 수 없는지 확인합니다.

    select distinct scope_id from core_config_data where scope='websites' and scope_id not in (select website_id from store_website);
    
  6. 이 MySQL 문을 실행하여 웹 사이트 구성에서 잘못된 행을 삭제합니다.

    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