PDA

View Full Version : Aggiornamneto DB Mysql



Hardcore
22nd January 2010, 11:23
Mi trovo in una situazione un pò particolare e le mie conoscenze di DB non vanno oltre qualce accenno di SQL da Università.

Spiego la situazione :)

Ho un Software sviluppato in java che si connette a un DB MySql.

Questo software è installato presso un cliente nella versione 1.05 col relativo DB funzionante per tale versione

Io devo sostituire il software con la versione 1.10, e fino a qua non ci sarebbero problemi. L'inghippo sta nel fatto che nella 1.10 è stato cambiato qualcosa anche nel db, per alcune table sono state aggiunte delle colonne. Io ho una versione da backup per la 1.10 che bisognerebbe usare se si installa per un cliente nuovo, con tutte le tabelle impostate.

Il fatto è che il cliente sul proprio db ha gia inserito numerosi dati e non posso chiedergli di reinserirli tutti da 0, io ignoro quali siano le tabelle o le modifiche fatte per la versione 1.10 nel DB.

C'è un modo per caricare il db 1.10, mantenendo tutti i dati presenti nel db attuale ?

Ladro di anime
22nd January 2010, 11:30
1) fatti l'elenco delle tabelle nel vecchio e nel nuovo
2) ti fai il desc delle tabelle [desc nometabella] sia nel nuovo che nel vecchio e vedi quali sono le modifiche
3) ti fai un analisi delle differenze per i campi obbligatori per capire cosa devi metterci dentro come valore
4) ti prepari uno script per passare i dati dal vecchio al nuovo tenendo conto dei dati obbligatori
5) ti prepari un database di prova con la versione nuova e fai il passaggio
6) ti fai i test per vedere che tutto funzioni
7) aggiorni il database loro

Problemi ne potresti avere se nel passaggio tra le due versioni è stato fatto qualcosa a livello concettuale per cui c'è da fare qualcosa di particolare con i dati di alcune tabelle.

Se non sai lavorare sul db con i comandi di export/import, etc... allora la vedo un pò dura.

black
22nd January 2010, 11:47
come si diceva sopra, se le le colonne che hai aggiunto alle tables non contengono dati collegati, puoi semplicemente aggiungere le colonne alle tables e mettere un valore di default che non crei problemi. oppure fai un export dei dati del vecchio db e provi a fare un import nel db nuovo.e fai un po di test