Esportazione e importazione da due versione diverse di Mysql

Started by AntonioGreco, 24 May 2024, 17:49:40

Previous topic - Next topic
A financial contribution is greatly appreciated as a support, to help us to keep live the project.
If you like this project you can donate some piece of BitCoin to this address: bc1qy5tgq6tvrckac2a57unxvqcnxamrvhduve9sj9

AntonioGreco

Salve, ho un grosso problema e spero che possiate aiutarmi!
Ho installato Joomla 5.1.0 e installato il pacchetto

- com_abook 4.0.3Beta Last update: 29 Dec 2023 (Beta version for Joomla! 4 and Joomla! 5)
- mod_abook_allinone 4.0.3Beta Last update: 29 Dec 2023 (Beta version for Joomla! 4 and Joomla! 5)
- plg_finder_abook_4_0_3Beta plg_finder_abook 4.0.3Beta Last update: 29 Dec 2023 (Beta version for
  Joomla! 4 and Joomla! 5)
- plg_content_loadbook_4_0_3Beta plg_content_loadbook 4.0.3Beta Last update: 29 Dec 2023 (Beta version
  for Joomla! 4 and Joomla! 5)

tutte le installazioni sono andate a buon fine.

1) Da joomla 3.8.7 (Versione database Mysql 5.5) ho esportato il file .sql attraverso il componente Alexandria

2) Su Joomla 5.1.0 (Versione database Mysql 8.0) ho importato questo file .sql

mi da continui errori come ad es:

1062 Duplicate entry '1' for key 'joshh_abauthor.PRIMARY'
oppure
1366 Incorrect integer value: " for column 'userid' at row 1


Dal supporto del server mi dicono che questo problema potrebbe essere causato dalla diversa struttura dei dati del vecchio e del nuovo database del componente e che una soluzione sarebbe quella di inserire manualmente prima di ogni link https://www.ibs.it dove ci sono le virgolette il valore "0". Tuttavia risultano non presenti anche i valori del campo language che non accetta valori nulli. La regola è contare i campi prima di VALUES e impostare il valore dopo il valore VALUES contando i campi.

Ma come posso ovviare a questo problema?

E' quasi impossibile impostare tutti i campi vuoti manualmente poichè sono tantissimi.

Mi potreste aiutare?

Vi ringrazio!
Antonio

A financial contribution is greatly appreciated as a support, to help us to keep live the project.
If you like this project you can donate some piece of BitCoin to this address: bc1qy5tgq6tvrckac2a57unxvqcnxamrvhduve9sj9

federica

Ciao Antonio,
la funzione di import/export è fatta per esportare e importare i dati all'interno della stessa versione di Abook.
Nel tuo caso la versione di Abook non è la stessa su entrambi i siti. Tra le due versioni sono cambiati alcuni campi del database.

Se sei pratico di Mysql potresti copiare le vecchie tabelle di Abook nel nuovo database e applicare le modifiche delle varie versioni fino alla più recente.

Ho visto che mi hai scritto in privato e ti ho risposto prima di leggere questo post.
Al mondo ci sono 10 tipi di persone, quelli che hanno capito il codice binario e quelli che non l'hanno capito.
Informatizzati [url="https://informatizzati.org"]https://informatizzati.org[/url]
Stacca la spina [url="https://disconnessi.org"]https://disconnessi.org[/url]

AntonioGreco

Ciao Federica,
ti ringrazio molto per la tua risposta!
Ho installato la nuova versione  (compatibile su J4 eJ5 beta) e l'installazione è andata benissimo, le tabelle della nuova versione sono state create senza problemi.
In quest'ultima versione mi sono accorto infatti che ci sono delle variazioni come ad es. la presenza del  campo "lang" nella tabella "_abbook" che prima non c'era e alcuni campi come "pag_index", in corrispondenza di "predefinito", è impostato su "0" mentre prima era impostato su "NULL".

Ho scaricato su excell tutte le tabelle della precedente versione e tutte le tabelle della nuova per capire quali modifiche apportare direttamente sulle tabelle del nuovo Db in modo di non avere problemi in fase di importazione del bk.

Spero funzioni così!  :)

Ti ringrazio e ti auguro una buona giornata!

Antonio

AntonioGreco

Quote from: AntonioGreco on 27 May 2024, 06:56:34Ciao Federica,
ti ringrazio molto per la tua risposta!
Ho installato la nuova versione  (compatibile su J4 eJ5 beta) e l'installazione è andata benissimo, le tabelle della nuova versione sono state create senza problemi.
In quest'ultima versione mi sono accorto infatti che ci sono delle variazioni come ad es. la presenza del  campo "lang" nella tabella "_abbook" che prima non c'era e alcuni campi come "pag_index", in corrispondenza di "predefinito", è impostato su "0" mentre prima era impostato su "NULL".

Ho scaricato su excell tutte le tabelle della precedente versione e tutte le tabelle della nuova per capire quali modifiche apportare direttamente sulle tabelle del nuovo Db in modo di non avere problemi in fase di importazione del bk.

Spero funzioni così!  :)

Ti ringrazio e ti auguro una buona giornata!

Antonio


A tal proposito vorrei chiederti una cosa:

Sto modificando il campo "pag_index" in corrispondenza della colonna "predefinito che prima era "NULL" e adesso "0". Ho fatto la query

ALTER TABLE `joshh_abbook` CHANGE `pag_index` `pag_index` INT NULL DEFAULT NULL;

Ma resta sempre a "0" . come posso modificarla?


Ti rirgrazio!

A financial contribution is greatly appreciated as a support, to help us to keep live the project.
If you like this project you can donate some piece of BitCoin to this address: bc1qy5tgq6tvrckac2a57unxvqcnxamrvhduve9sj9

federica

Bene! Mi fa piacere sapere che tu sia riuscito a migrare i dati.

La query che hai eseguito non cambia nulla perchè trasforma il valore di default da NULL a NULL
La query corretta deve trasformare il valore di default a "0", così:
ALTER TABLE `#__abbook` CHANGE `pag_index` `pag_index` INT(4) NULL DEFAULT 0;
Sostituisci "#_" con il tuo prefisso.
Al mondo ci sono 10 tipi di persone, quelli che hanno capito il codice binario e quelli che non l'hanno capito.
Informatizzati [url="https://informatizzati.org"]https://informatizzati.org[/url]
Stacca la spina [url="https://disconnessi.org"]https://disconnessi.org[/url]

AntonioGreco

Ciao Federica,
purtroppo non sono ferrato con Sql!
ho fatto come mi hai detto ma mi restituisce questo errore:

Messaggio di MySQL:

#1067 - Invalid default value for 'checked_out_time'

federica

Il comando per cambiare il campo "pag_index" è andato a buon fine, adesso l'errore lo da sul campo "checked_out_time".
La nuova versione di Mysql si aspetta che i campi abbiano un valore di default, bisogna correggerli tutti in base agli errori che ricevi.
Al mondo ci sono 10 tipi di persone, quelli che hanno capito il codice binario e quelli che non l'hanno capito.
Informatizzati [url="https://informatizzati.org"]https://informatizzati.org[/url]
Stacca la spina [url="https://disconnessi.org"]https://disconnessi.org[/url]