Upgrade di prestashop alla versione 1.7.7.0 converte la codifica delle tabelle in utf8mb4
Perché questa scelta? Differenza tra utf8 e utf8mb4
MySQL di default supporta utf8 solo a 3 byte, per avere la massima compatibilità con i caratteri latini e emojis, bisogna utilizzare utf8mb4 al posto di utf8.
In caso di aggiornamento manuale
In caso di aggiornamento manuale, l'installazione può fallire con il seguente errore:
Errore SQL nella query Index column size too large. The maximum column size is 767 bytes.
Per risolvere questo problema basta editare il file di installazione install/data/db_structure.sql
Cercando tutte le occorrenze:
ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8mb4 COLLATION;
e sostituendole con:
ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COLLATION;
Una volta eseguita la modifica riavviamo l'installazione.
Aggiornamento tramite 1ClickUpdate
Durante l'aggiornamento con 1ClickUpdate alla versione 1.7.7.0 nei log possono apparire una serie di errori. Esempio:
SQL 1.7.7.0 1709 in ALTER TABLE `ps_order_state` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci: Index column size too large. The maximum column size is 767 bytes
SQL 1.7.7.0 1709 in ALTER TABLE `ps_page_type` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci: Index column size too large. The maximum column size is 767 bytes
Dopo l'aggiornamento è necessario quindi tramite PHPMyAdmin, eseguire le seguenti query:
ALTER TABLE `ps_order_state` ROW_FORMAT=DYNAMIC;
ALTER TABLE `ps_page_type` ROW_FORMAT=DYNAMIC;
Per ogni tabella che nei log è evidenziato l'errore. Una volta eseguita l'operazione si può riavviare l'installazione.
Commenti
0 commenti
Accedi per aggiungere un commento.