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

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:

    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:

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

    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:

    delete from core_config_data where scope='stores' and scope_id not in (select store_id from store);
    
  5. 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, hebt u configuraties die in het gegevensbestand van website(s), evenals opslag(en), nog in zijn geschrapt.

    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:

    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:

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