Thread obsoleto unione di due database

Stato
Discussione chiusa ad ulteriori risposte.

Giuseppe14739

Utente Attivo
Autore del topic
24 Agosto 2008
299
56
Miglior risposta
0
Buon giorno, ho bisogno di un vostro aiuto, utilizzo come emulatore arcturus ultimamente è uscita una nuova versione che comunque richiede anche l'aggiornamento del database, allora ilmio quesito è questo, come faccio a far upgrade del database nuovo senza cancellare i record registrati già prima (per esempio users)?
perchè quando provo a buttarlo su mi cancella il database vecchio e mi mette quello nuovo ma non mi va bene perchè è come se rincominciassi da capo!
avete per caso una guida per come fare? grazie!!
 
Ultima modifica:
Buon giorno, ho bisogno di un vostro aiuto, utilizzo come emulatore arcturus ultimamente è uscita una nuova versione che comunque richiede anche l'aggiornamento del database, allora ilmio quesito è questo, come faccio a far upgrade del database nuovo senza cancellare i record registrati già prima (per esempio users)?
perchè quando provo a buttarlo su mi cancella il database vecchio e mi mette quello nuovo ma non mi va bene perchè è come se rincominciassi da capo!
avete per caso una guida per come fare? grazie!!
Sicuramente c'è un file sql immagino, quindi elimina tutte le righe che contengono le parole "DROP TABLE", così non ti cancella quelle esistenti. Inoltre, le righe con le parole "create table" dovrebbero essere trasformate in "create table if not exists", così le crea solo se non ci sono già. Infine, dovresti cancellare tutte le "INSERT INTO" che hai già, altrimenti ti darà un errore, o ti creerebbe un doppione di qualcosa che hai già.
Spero di essermi spiegato. Comunque è una cosa lunga se è un grosso database, lo so, ma è l'unico modo.

Altrimenti, se sono poche le tabelle che ti preoccupano, esporta il loro contenuto e reimportalo quando hai modificato il database. Esempio:
- esporti tutti gli utenti della tabella users.
- importi il nuovo db.
- importi di nuovo gli utenti in users (sempre sperando che la struttura non sia differente da prima).

Fammi sapere.
 
Buon giorno, ho bisogno di un vostro aiuto, utilizzo come emulatore arcturus ultimamente è uscita una nuova versione che comunque richiede anche l'aggiornamento del database, allora ilmio quesito è questo, come faccio a far upgrade del database nuovo senza cancellare i record registrati già prima (per esempio users)?
perchè quando provo a buttarlo su mi cancella il database vecchio e mi mette quello nuovo ma non mi va bene perchè è come se rincominciassi da capo!
avete per caso una guida per come fare? grazie!!
Sicuramente c'è un file sql immagino, quindi elimina tutte le righe che contengono le parole "DROP TABLE", così non ti cancella quelle esistenti. Inoltre, le righe con le parole "create table" dovrebbero essere trasformate in "create table if not exists", così le crea solo se non ci sono già. Infine, dovresti cancellare tutte le "INSERT INTO" che hai già, altrimenti ti darà un errore, o ti creerebbe un doppione di qualcosa che hai già.
Spero di essermi spiegato. Comunque è una cosa lunga se è un grosso database, lo so, ma è l'unico modo.

Altrimenti, se sono poche le tabelle che ti preoccupano, esporta il loro contenuto e reimportalo quando hai modificato il database. Esempio:
- esporti tutti gli utenti della tabella users.
- importi il nuovo db.
- importi di nuovo gli utenti in users (sempre sperando che la struttura non sia differente da prima).

Fammi sapere.

In realtà è più complicato di così, rischi di creare un bel po' di problemi...
La cosa più intelligente da fare è confrontare i due schemi ed adattare il vecchio al nuovo, andando ad inserire le tabelle mancanti e ad alterare quelle esistenti se necessario...

Giuseppe14739 Giuseppe14739
Non sono sicuro di come funzioni ma questo programma potrebbe fare al caso tuo
Perfavore, Entra oppure Registrati per vedere i Link!

Unica cosa è che ti consiglio di provarlo su un backup prima, in modo da evitare problemi.
Non so se MySQL mette già a disposizione qualche strumento per eseguire lo stesso lavoro, probabilmente però puoi trovare un qualcosa del genere sul dbmanager che stai utilizzando (navicat/mysql workbench)... dai un'occhiata ed eventualmente se non dovesse funzionare armati di pazienza e fai a mano... :/
 
Stato
Discussione chiusa ad ulteriori risposte.