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.
-
SSH al server ed eseguire il comando seguente:
bin/magento
-
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.
-
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);
-
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);
-
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);
-
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);