devcode-it / openstamanager

Il software gestionale open source per l'assistenza tecnica e la fatturazione
https://www.openstamanager.com
GNU General Public License v3.0
104 stars 69 forks source link

MIGLIORIA procedura di aggiornamento #859

Open beppe9000 opened 4 years ago

beppe9000 commented 4 years ago

Proporrei come primo step degli aggiornamenti futuri di "simulare" la procedura di aggiornamento del database tramite una transazione di test che viene poi annullata in ogni caso, prima di procedere all'aggiornamento vero e proprio di osm. In caso di errori il sistema rimarrebbe in uno stato utilizzabile perchè non è stato toccato il filesystem.

Oppure permettere nella schermata di errore sql di ripristinare l'ultimo backup presente.

Dasc3er commented 4 years ago

Grazie per il suggerimento, purtroppo la proposta è già stata effettuata in passato e ritenuta impraticabile. Infatti, le transazioni in MySQL (DBMS principalmente supportato) non prevedono in alcun modo la possibilità di gestire le operazioni di modifica/creazione delle tabelle, che sono al momento le principali cause di errori durante gli aggiornamenti. Questo era valido per la versione 5.*, può essere di interesse ricercare se la funzionalità è ora disponibile con MySQL 8.

La proposta di ripristinare il backup è molto valida al contrario, e potrebbe essere utile per risolvere lo stallo che si può verificare in caso di errori.

beppe9000 commented 4 years ago

Speravo con mysql8 fosse migliorata la cosa, ma qui non sembra essere cambiato molto. Potrebbe avere senso creare delle tabelle temporanee su cui fare l'aggiornamento? Notavo che nel database vengono usate le constraints, quindi non so se e quanto questo influisca ma penso che complicherebbe.


In ogni caso la possibilità di ripristinare l'ultimo backup per annullare l'operazione di aggiornamento in caso di errore sembra la soluzione più pratica.

beppe9000 commented 4 years ago

Tra le varie feature per semplificare la vita inoltre sarebbe utile predisporre una modalità di aggiornamento manuale del database in caso di errori, che mostri le query rimanenti a partire da quella che ha generato l'errore e che permetta di premere un bottone per confermare la modifica manuale del database e passare allo step successivo dell'aggiornamento

loviuz commented 1 year ago

Su questo punto mi sentirei di dire che la soluzione più semplice da gestire è una modalità in cui, se si è in fase di aggiornamento e qualcosa va storto, venga proposto di ripristinare facilmente un backup tra quelli presenti, perché se OSM non si avvia non è possibile farlo da interfaccia. Potrebbe essere che durante l'aggiornamento tramite file zip ci sia una spunta che chieda se si vuole fare anche un backup prima di avviare l'aggiornamento, di default spuntata, così si è sicuri che anche l'utente più distratto riuscirà ad avere un backup ripristinabile. Che ne pensate @beppe9000 e @Dasc3er ?