Implementatie mislukt bij leegmaken van cache: "Er zijn geen opdrachten gedefinieerd in de fout 'cache' namespace

Wanneer de plaatsing in Adobe Commerce op wolkeninfrastructuur met a ontbreekt zijn er geen bevelen die in het "geheime voorgeheugen"worden bepaald namespace fout, identificeer de ongeldige rijen verlaten van die configuraties. Als u maar één website hebt, is de tweede test voor de websites niet van toepassing, en u hoeft alleen maar te testen op winkels.

Beschrijving description

Omgeving

Adobe Commerce op cloudinfrastructuur 2.4.x

Probleem

Waarschuwing : Steun eerst het gegevensbestand, als u dit in een levende plaats van de Productie doet, alvorens deze stappen uit te voeren.

Dit artikel verstrekt een oplossing voor de kwestie wanneer uw plaatsing ontbreekt en één van de fouten in het logboek als dit kijkt:

[ 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.

Stappen om te reproduceren:

Poging om te implementeren.

Verwachte resultaten :

De implementatie is voltooid.

Ware resultaten :

U kunt niet correct implementeren. In de logboeken ziet u een plaatsingsfout met een bericht gelijkend op: Er zijn geen bevelen in het geheime voorgeheugen namespace.

Oorzaak

De tabel core_config_data bevat configuraties voor een winkel-id of website-id die niet meer in de database aanwezig zijn. Dit komt voor wanneer u een gegevensbestandsteun van een andere instantie/milieu hebt ingevoerd, en de configuraties voor die werkingsgebieden blijven in het gegevensbestand, alhoewel de bijbehorende opslag(en)/website(s) zijn geschrapt.

Resolutie resolution

Als u maar één website hebt, is de tweede test voor de websites niet van toepassing, en u hoeft alleen maar te testen op winkels.

Om dit probleem op te lossen, identificeer de ongeldige rijen die van die configuraties worden verlaten.

  1. SSH aan de server en stel dit bevel in werking:

    code language-none
    bin/magento
    
  2. Het foutbericht geeft mogelijk aan welke rijen en tabellen in de database blijven van verwijderde sites. Bijvoorbeeld, is het volgende een fout erop wijst die dat de gevraagde opslag niet werd gevonden:

    code language-none
    ...
        In StoreRepository.php line 112:
    
        The store that was requested wasn't found. Verify the store and try again.
    
  3. Voer deze MySQL-query uit om te controleren of de winkel niet kan worden gevonden. Dit wordt aangegeven door het foutbericht in stap 2.

    code language-none
    select distinct scope_id from core_config_data where scope='stores' and scope_id not in (select store_id from store);
    
  4. Voer de volgende MySQL-instructie uit om de ongeldige rijen te verwijderen:

    code language-none
    delete from core_config_data where scope='stores' and scope_id not in (select store_id from store);
    
  5. Voer deze opdracht opnieuw uit:

    code language-none
    bin/magento
    

    Als u een fout krijgt zoals hieronder die erop wijst dat de website met identiteitskaart X die werd gevraagd niet werd gevonden, hebt u configuraties die in het gegevensbestand van website(s), evenals opslag(en), nog in zijn geschrapt.

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

    Voer deze MySQL-query uit en controleer of de website niet is gevonden:

    code language-none
    select distinct scope_id from core_config_data where scope='websites' and scope_id not in (select website_id from store_website);
    
  6. Voer deze MySQL-instructie uit om de ongeldige rijen uit de configuratie van de website te verwijderen:

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

Gerelateerde lezing

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f