Causa

La tabella core_config_data contiene configurazioni per un ID archivio o un ID sito Web che non esiste più nel database. Ciò si verifica quando si importa un backup del database da un'altra istanza o da un altro ambiente e le configurazioni per tali ambiti rimangono nel database, anche se gli store o i siti Web associati sono stati eliminati.

Risoluzione

Se disponi di un solo sito web, il secondo test per i siti web non è applicabile e devi solo verificare la presenza di negozi.

Per risolvere questo problema, identifica le righe non valide rimaste da tali configurazioni.

  1. SSH al server ed eseguire il comando seguente:

    bin/magento
    
  2. Il messaggio di errore può indicare quali righe e tabelle rimangono nel database dai siti eliminati. Ad esempio, di seguito è riportato un errore che indica che l’archivio richiesto non è stato trovato:

    ...
        In StoreRepository.php line 112:
    
        The store that was requested wasn't found. Verify the store and try again.
    
  3. Eseguire questa query MySQL per verificare che non sia possibile trovare l'archivio, indicato dal messaggio di errore nel passaggio 2.

    select distinct scope_id from core_config_data where scope='stores' and scope_id not in (select store_id from store);
    
  4. Eseguire la seguente istruzione MySQL per eliminare le righe non valide:

    delete from core_config_data where scope='stores' and scope_id not in (select store_id from store);
    
  5. Esegui di nuovo questo comando:

    bin/magento
    

    Se ricevi un errore simile a quello riportato di seguito che indica che il sito Web con ID X richiesto non è stato trovato, significa che sono state eliminate alcune configurazioni rimanenti nel database dai siti Web e dagli store.

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

    Eseguire questa query MySQL e verificare che il sito Web non sia stato trovato:

    select distinct scope_id from core_config_data where scope='websites' and scope_id not in (select website_id from store_website);
    
  6. Eseguire questa istruzione MySQL per eliminare le righe non valide dalla configurazione del sito Web:

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