Implementatie mislukt bij leegmaken van cache: "Er zijn geen opdrachten gedefinieerd in de fout 'cache' namespace
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.
Betrokken producten en versies
Adobe Commerce op cloudinfrastructuur 2.4.x
Probleem
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 het volgende 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 gebeurt wanneer u een databaseback-up hebt geïmporteerd uit een andere instantie/omgeving en de configuraties voor die bereikinstellingen in de database blijven, hoewel de bijbehorende opslag(en)/website(s) zijn verwijderd.
Oplossing
Als u maar één website hebt, is de tweede test voor de websites niet van toepassing en hoeft u alleen maar te testen op winkels.
Om dit probleem op te lossen, identificeer de ongeldige rijen die van die configuraties worden verlaten.
-
SSH aan de server en stel dit bevel in werking:
bin/magento
-
Het foutbericht geeft mogelijk aan welke rijen en tabellen in de database blijven van verwijderde sites. Hieronder ziet u bijvoorbeeld een fout die aangeeft dat de gevraagde opslag niet is gevonden:
code language-... In StoreRepository.php line 112: The store that was requested wasn't found. Verify the store and try again.
-
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-sql select distinct scope_id from core_config_data where scope='stores' and scope_id not in (select store_id from store);
-
Voer de volgende instructie MySQL uit om de ongeldige rijen te verwijderen:
code language-sql delete from core_config_data where scope='stores' and scope_id not in (select store_id from store);
-
Voer deze opdracht opnieuw uit:
bin/magento
Als u een fout krijgt zoals hieronder die erop wijst dat de website met identiteitskaart X die werd gevraagd niet werd gevonden u nog configuraties hebt in de database van website(s) en winkel(s) die zijn verwijderd.
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-sql select distinct scope_id from core_config_data where scope='stores' and scope_id not in (select store_id from store);
-
Voer deze instructie MySQL uit om de ongeldige rijen uit de websiteconfiguratie te verwijderen:
code language-sql delete from core_config_data where scope='websites' and scope_id not in (select website_id from store_website);
Voer de opdracht bin/magento
opnieuw uit om te bevestigen dat de oplossing heeft gewerkt. U zou niet meer de fouten moeten zien en met succes kunnen opstellen.
Gerelateerde lezing
- de plaatsingsproblemen van Adobe Commerce
- het Controleren plaatsingslogboek als de HUIDIGE UI "logboek gesnakte"foutheeft
- Beste praktijken voor het wijzigen van gegevensbestandlijstenin het Playbook van de Implementatie van Commerce