Jump to content

[RISOLTO] 1.6.1.24 aggiornamento a 1.7.7.4 database schema error


Recommended Posts

Ciao a tutti,

Sto aggiornando in sandbox una copia del mio sito web prestashop live in MAMP (gratuito) seguendo questa iterazione:

- il mio sito web è su 1.6.1.3

- Eseguo un aggiornamento da 1.6.1.3 a 1.6.1.24 con modulo aggiornamento in 1 clic e tutto va liscio, quindi cambio in MAMP il php da 5.6.40 a 7.1.33 e proseguo la disinstallazione e l'eliminazione (in questo ordine) di tutti i moduli e temi non nativi eccetto revws e payplug

- Installo, in una diversa directory di htdocs e in un diverso database, un prestashop 1.6.1.24 e copio manualmente al suo interno i moduli revws e payplug, la cartella img e il file di impostazione

- Cancello la directory 1.6.1.3 aggiornata a 1.6.1.24 e il database della nuova appena effettuata installazione 1.6.1.24 e collego, per mezzo di una copia del file settings, la directory prestashop 1.6.1.24 di questa nuova installazione al database dell'installazione 1.6.1.3 aggiornato a 1.6.1.24 e modifico la directory della nuova installazione 1.6.1.24 affinché combaci con quella originariamente aggiornata e che ora è stata cancellata

- Quindi mi ritrovo con una nuova installazione di prestashop collegata al mio precedente database storico completo

- In tutto questo processo ho mantenuto i moduli non nativi e gli override disattivati e ho eseguito il check up dei  database con il modulo prestashop cleaner 1.8 e, una volta tornato al tema ufficiale, mi sono ritrovato ad una situazione molto "vanilla" e priva di errori se visulaizzata con la debug mode attiva.

A questo punto, ho testato tutte le funzioni  di questo sito web locale che mi ritrovo ibridato (vecchio database, nuova installazione) e tutto sembra andare bene, con nessun errore durante l'utilizzo della modalità di debug. Mi sento quindi a mio agio nell'usare il modulo 1-click per aggiornare a PS 1.7.7.4.

- Metto lo zip nella cartella dei download e procedo con l'aggiornamento. Tutto fila liscio nell'aggiornamento dei file (tutto verde), ma quando il processo va al database, mi ritrovo con un errore e un back office poco accessibile, con front-office e back office zona ordini, clienti e setting inaccessibili a causa di troppi reindirizzamenti.

Ecco la situazione e gli errori di aggiornamento del database:

Updating database schema...

Executing: CREATE TABLE ps_translation (id_translation INT AUTO_INCREMENT NOT NULL, id_lang INT NOT NULL, `key` TEXT NOT NULL COLLATE utf8_bin, translation TEXT NOT NULL, domain VARCHAR(80) NOT NULL, theme VARCHAR(32) DEFAULT NULL, INDEX IDX_ADEBEB36BA299860 (id_lang), INDEX `key` (domain), PRIMARY KEY(id_translation)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB

Executing: CREATE TABLE ps_module_history (id INT AUTO_INCREMENT NOT NULL, id_employee INT NOT NULL, id_module INT NOT NULL, date_add DATETIME NOT NULL, date_upd DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB

Executing: CREATE TABLE ps_admin_filter (id INT AUTO_INCREMENT NOT NULL, employee INT NOT NULL, shop INT NOT NULL, controller VARCHAR(60) NOT NULL, action VARCHAR(100) NOT NULL, filter LONGTEXT NOT NULL, filter_id VARCHAR(191) NOT NULL, UNIQUE INDEX admin_filter_search_id_idx (employee, shop, controller, action, filter_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB

Executing: DROP INDEX lang_iso_code ON ps_lang

Executing: ALTER TABLE ps_lang CHANGE active active TINYINT(1) NOT NULL DEFAULT '0' , CHANGE iso_code iso_code VARCHAR(2) NOT NULL, CHANGE language_code language_code VARCHAR(5) NOT NULL, CHANGE date_format_lite date_format_lite VARCHAR(32) NOT NULL DEFAULT 'Y-m-d' , CHANGE date_format_full date_format_full VARCHAR(32) NOT NULL DEFAULT 'Y-m-d H:i:s' , CHANGE is_rtl is_rtl TINYINT(1) NOT NULL DEFAULT '0'

Executing: CREATE INDEX IDX_2F43BFC7BA299860 ON ps_lang_shop (id_lang)

Executing: ALTER TABLE ps_lang_shop RENAME INDEX id_shop TO IDX_2F43BFC7274A50A0

Executing: DROP INDEX id_lang ON ps_attribute_lang

Executing: CREATE INDEX IDX_3ABE46A77A4F53DC ON ps_attribute_lang (id_attribute)

Executing: CREATE INDEX IDX_3ABE46A7BA299860 ON ps_attribute_lang (id_lang)

Executing: DROP INDEX deleted ON ps_shop_group

Executing: ALTER TABLE ps_shop_group CHANGE active active TINYINT(1) NOT NULL DEFAULT '1' , CHANGE deleted deleted TINYINT(1) NOT NULL DEFAULT '0'

Executing: DROP INDEX id_parent ON ps_tab

Executing: DROP INDEX class_name ON ps_tab

Executing: ALTER TABLE ps_tab ADD route_name VARCHAR(256) DEFAULT NULL, CHANGE position position INT NOT NULL, CHANGE active active TINYINT(1) NOT NULL DEFAULT '1' , CHANGE hide_host_mode hide_host_mode TINYINT(1) NOT NULL DEFAULT '0' , CHANGE icon icon VARCHAR(32) DEFAULT ''

Executing: DROP INDEX id_shop_group ON ps_shop

Executing: DROP INDEX id_category ON ps_shop

Executing: ALTER TABLE ps_shop CHANGE id_category id_category INT NOT NULL DEFAULT '1' , CHANGE theme_name theme_name VARCHAR(255) NOT NULL, CHANGE active active TINYINT(1) NOT NULL DEFAULT '1' , CHANGE deleted deleted TINYINT(1) NOT NULL DEFAULT '0'

Executing: CREATE INDEX IDX_CBDFBB9EF5C9E40 ON ps_shop (id_shop_group)

Executing: ALTER TABLE ps_attribute CHANGE color color VARCHAR(32) NOT NULL, CHANGE position position INT NOT NULL DEFAULT '0'

01:24:42 ERROR [console] Error thrown while running command "prestashop:schema:update-without-foreign --env=prod". Message: "An exception occurred while executing 'ALTER TABLE ps_attribute CHANGE color color VARCHAR(32) NOT NULL, CHANGE position position INT NOT NULL DEFAULT '0' ':

SQLSTATE[01000]: Warning: 1265 Data truncated for column 'color' at row 20" ["exception" => Doctrine\DBAL\Exception\DriverException { …},"command" => "prestashop:schema:update-without-foreign --env=prod","message" => """ An exception occurred while executing 'ALTER TABLE ps_attribute CHANGE color color VARCHAR(32) NOT NULL, CHANGE position position INT NOT NULL DEFAULT '0' ':\n \n SQLSTATE[01000]: Warning: 1265 Data truncated for column 'color' at row 20 """]

In AbstractMySQLDriver.php line 106:


An exception occurred while executing 'ALTER TABLE ps_attribute CHANGE colo

r color VARCHAR(32) NOT NULL, CHANGE position position INT NOT NULL DEFAULT

'0' ':


SQLSTATE[01000]: Warning: 1265 Data truncated for column 'color' at row 20


In PDOConnection.php line 90:


SQLSTATE[01000]: Warning: 1265 Data truncated for column 'color' at row 20


In PDOConnection.php line 88:


SQLSTATE[01000]: Warning: 1265 Data truncated for column 'color' at row 20


prestashop:schema:update-without-foreign [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--id_shop [ID_SHOP]] [--id_shop_group [ID_SHOP_GROUP]] [--]

Avete qualche soluzione da suggerire?
Come posso stabilire quali tabelle stanno provocando il problema per correggerle prima di procedere con l'aggiornamento 1.7.7.4?
Grazie mille per qualsiasi suggerimento possiate fornirmi.

Di seguito sono riportate le specifiche di MAMP al momento dell'errore:
PHP: 7.1.33

max_execution_time30000

max_file_uploads20

max_input_nesting_level64

max_input_time60000

max_input_vars10000

memory_limit1024M

post_max_size256M

Server web: Apache

[RISOLTO] Dopo aver postato il problema anche su stackoverflow mi è stato fatto notate che chiaramente il messaggio d'errore rimandava ad un campo regolato in database da un VARCHAR di massimo 32 caratteri spazi inclusi che si presentava popolato in eccesso. Trovato il campo, ridotto il contenuto da 35 a 29 caratteri e questo errore si è risolto, permettendomi di raggiungere il compimento dell'aggiornamento.
In ogni caso, data l'eccedenza di errori da precedente installazione (database e prestashop vengono portati avanti, senza reset, dal 2013), ho collegato il database aggiornato alla 1.7 ad una fresh install 1.7. Attualmente ho dei problemi di permessi su tale nuovo database, ma questo problema è stato risolto.

Edited by nicoledesignstore (see edit history)
Link to comment
Share on other sites

Ciao,

da quello che si vede nel log che hai postato il problema è sulla tabella ps_attribute ma non è chiaro quale sia stato l'errore.

Personalmente, per le migrazioni da PS 1.6.x a Ps 1.7.x ho sempre preferito procedere manualmente seguendo queste istruzioni: https://devdocs.prestashop.com/1.7/basics/keeping-up-to-date/migration/

Magari questa sezione del forum che parla proprio dell'aggiornamento di PS può esserti d'aiuto: https://www.prestashop.com/forums/forum/115-upgrading-prestashop-from-a-previous-version/

Buon pomeriggio,
Federica

Link to comment
Share on other sites

Ciao @fedesib
grazie mille per il feedback!
Il problema con la migrazione è che ho dei contenuti generati da alcuni moduli non nativi, quali le carte di credito, le recensioni ed i punti fedeltà, che speravo di mantenere, mentre sia moduli di migrazione da marketplace che la migrazione vera e propria mi pare di capire non siano in grado includere esattamente tutti i dati, ma solo quelli salienti. Inoltre, con la migrazione, i clienti sarebbero costretti a rigenerare le password, mentre con l'aggiornamento no. Starei cercando di mantenere una certa continuità il più possibile, essendo questo database originariamente un PS 1.4, poi aggiornato a 1.6 e ora da portare ad 1.7.
Faccio ancora qualche tentativo, magari iniziando da capo con la disinstallazione di quasi tutti i moduli non nativi e lo spostamento a nuovo installer 1.6.1.24.

Se ho aggiornamenti in positivo, aggiorno direttamente qui, altrimenti spero qualcuno possa aver riscontrato errori simili e fornirmi qualche indicazione su come risolversi.

a presto!

 

Link to comment
Share on other sites

  • nicoledesignstore changed the title to [RISOLTO] 1.6.1.24 aggiornamento a 1.7.7.4 database schema error

Ciao @fedesib

[RISOLTO] Dopo aver postato il problema anche su stackoverflow mi è stato fatto notate che chiaramente il messaggio d'errore rimandava ad un campo regolato in database da un VARCHAR di massimo 32 caratteri spazi inclusi che si presentava popolato in eccesso. Trovato il campo, ridotto il contenuto da 35 a 29 caratteri e questo errore si è risolto, permettendomi di raggiungere il compimento dell'aggiornamento.
In ogni caso, data l'eccedenza di errori da precedente installazione (database e prestashop vengono portati avanti, senza reset, dal 2013), ho collegato il database aggiornato alla 1.7 ad una fresh install 1.7. Attualmente ho dei problemi di permessi su tale nuovo database, ma questo problema è stato risolto.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...