2012-05-06 3 views
6

In un'applicazione che sto supportando, ultimamente ho apportato diverse modifiche alla struttura del DB.C'è qualche strumento o API per aggiornare automaticamente una struttura di database

Invio l'aggiornamento agli utenti, ma è molto difficile tenerli tutti aggiornati.

C'è un modo semplice per farlo?

Qualcosa che consente agli utenti di saltare le versioni, ma continuano a eseguire l'aggiornamento nella versione successiva che installano.

Uso il database BlackFish.

Grazie

+3

Assicurarsi che le patch vengano applicate nell'ordine corretto? Non dovresti avere alcun problema allora. – Ben

+1

Accetto con @Ben, se l'utente salta alcuni degli aggiornamenti, una volta eseguito, installa tutti gli aggiornamenti precedenti in una sequenza prima di applicare l'ultimo. È IMHO il modo più indolore per farlo. – TLama

+3

Non sapevo che nessuno avesse mai usato BlackFish SQL. –

risposta

5

Basta memorizzare un numero di versione di database nel database e scrivere script di migrazione come questo:

  • database_10.sql - struttura iniziale db
  • database_10_15.sql - script di migrazione per passare da 1,0 a 1,5
  • database_10_17.sql - script di migrazione per spostare 1,5-1,7

Controllare il numero di versione del database all'avvio di ogni applicazione e applicare gli script di migrazione necessari.

0

Nota a margine:

Un'altra interessante alternativa ad essa anche per piccolo progetto è componente ACE Absolute Database.


Ora diretto al punto:

Il personnal edition (gratuita) viene fornito con un'utility personalizzata denominata DBManager (insieme al suo codice sorgente).

enter image description here

Può servire come punto di partenza per come gestire il cambiamento struttura del database a livello di codice (il modo in cui Delphi!).

Perché non portarlo su BlackFish?

0

Molto raramente cambio database ma basta aggiungere una tabella o talvolta una colonna. Quando avvio il mio programma controlla l'esistenza di detta colonna o tabella e se non è lì prova a farlo.