Échec du déploiement lors du vidage du cache : erreur « Aucune commande n’est définie dans l’espace de noms « cache ».

Lorsque le déploiement échoue dans Adobe Commerce sur l’infrastructure cloud avec une erreur Aucune commande n’est définie dans l’espace de noms « cache », identifiez les lignes non valides restantes de ces configurations. Si vous n’avez qu’un seul site web, le deuxième test pour les sites web ne s’applique pas et vous n’avez qu’à tester les magasins.

Description description

Environnement

Adobe Commerce sur l’infrastructure cloud 2.4.x

Problème

Avertissement : sauvegardez d’abord la base de données, si vous le faites dans un site de production actif, avant d’effectuer ces étapes.

Cet article fournit une solution au problème d’échec de déploiement d’et d’apparition de l’une des erreurs du journal, comme suit :

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

Procédure à suivre :

Tentative de déploiement.

Résultats attendus :

Le déploiement a réussi.

Résultats réels :

Le déploiement échoue. Dans les journaux, une erreur de déploiement s’affiche avec un message similaire à : Il n’existe aucune commande dans l’espace de noms du cache.

Cause

La table core_config_data contient des configurations pour un ID de magasin ou un ID de site web qui n’existe plus dans la base de données. Cela se produit lorsque vous avez importé une sauvegarde de base de données à partir d’une autre instance ou d’un autre environnement et que les configurations de ces étendues restent dans la base de données, même si les magasins/sites web associés ont été supprimés.

Résolution resolution

Si vous n’avez qu’un seul site web, le deuxième test pour les sites web ne s’applique pas et vous n’avez qu’à tester les magasins.

Pour résoudre ce problème, identifiez les lignes non valides restantes de ces configurations.

  1. Envoyez le SSH au serveur et exécutez la commande suivante :

    code language-none
    bin/magento
    
  2. Le message d’erreur peut indiquer quelles lignes et tables restent dans la base de données à partir des sites supprimés. Par exemple, voici une erreur indiquant que le magasin demandé est introuvable :

    code language-none
    ...
        In StoreRepository.php line 112:
    
        The store that was requested wasn't found. Verify the store and try again.
    
  3. Exécutez cette requête MySQL pour vérifier que le magasin est introuvable, ce qui est indiqué par le message d’erreur à l’étape 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. Exécutez l’instruction MySQL suivante pour supprimer les lignes non valides :

    code language-none
    delete from core_config_data where scope='stores' and scope_id not in (select store_id from store);
    
  5. Exécutez à nouveau cette commande :

    code language-none
    bin/magento
    

    Si vous obtenez une erreur telle que celle ci-dessous, qui indique que le site web portant l’ID X demandé est introuvable, cela signifie que certaines configurations restent dans la base de données à partir du ou des sites web, ainsi que des magasins, qui ont été supprimés.

    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.
    

    Exécutez cette requête MySQL et vérifiez que le site web est introuvable :

    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. Exécutez cette instruction MySQL pour supprimer les lignes non valides de la configuration du site web :

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

Lecture connexe

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