come eseguire gli aggiornamenti del database in ogni versione

4

La nostra applicazione utilizza database (principalmente Oracle) e il database è al centro. Ogni cliente ha il proprio database, con una propria copia dell'applicazione. Ora con ogni nuova versione del nostro prodotto, abbiamo anche bisogno di aggiornare lo schema del database. Queste modifiche stanno aggiungendo nuove tabelle, rimuovendo colonne, manipolando i dati, ecc. Come gestiscono le persone? Esistono processi standard per questo?

EDIT: - Il problema principale è che i database sono enormi con molte tabelle e una quantità enorme di dati. Forniamo gli script e alcune utilità per manipolare i dati. Come gestire i fallimenti e i falsi negativi? Più di cercare questi articoli gentili. link

    
posta Manoj R 12.04.2012 - 20:42
fonte

3 risposte

10

Dipende dai tuoi dati, ma in generale vuoi assicurarti che tutti i dati superino l'aggiornamento.

Probabilmente vorrai preparare alcuni script DDL che creano / modificano strutture, forse anche uno script per struttura. Probabilmente avrai anche bisogno di alcuni script DML che aggiornino / eseguano il backup / trasformino i dati durante questo processo. Di nuovo, quanto di ciò dovrai fare dipenderà dalla natura dell'upgrade.

A scopo di test, potrebbe essere una buona idea provare e ottenere alcuni (o tutti, se possibile) dei dati del cliente prima dell'aggiornamento pianificato e testarli sui loro dati per vedere se ci sono dati nei loro sistemi che potrebbero interrompere il processo di aggiornamento.

Infine, vorrai eseguire un backup completo del database del cliente prima di iniziare l'aggiornamento, in modo da poterlo ripristinare se le cose diventano strane.

Alcuni altri punti che potrebbero essere utili a riguardo:

  • Se vengono rimosse tabelle / colonne, assicurati di rimuoverle nell'ordine corretto per evitare violazioni dei vincoli di integrità.

  • Ci sono vincoli o trigger che dovrebbero essere disabilitati / rimossi per tutto o parte dell'upgrade? Esistono vincoli o trigger che potresti creare solo per l'aggiornamento che potrebbe rendere più semplice?

  • Se stai aggiornando i dati per le colonne che sono state indicizzate, potresti voler includere la reindicizzazione / raccolta delle statistiche come parte del processo di aggiornamento.

risposta data 12.04.2012 - 20:48
fonte
3

Ti consiglio di esaminare le migrazioni myBatis . È possibile utilizzare questo per avvolgere gli script di modifica (e rollback) in un comando semplice di quello che può essere eseguito come parte di un'installazione / aggiornamento.

    
risposta data 12.04.2012 - 20:57
fonte
1

Dipende dal linguaggio, dalla struttura, dalla piattaforma e da altre cose reali. Se è Java (standalone o EE), la soluzione migliore potrebbe essere Liquibase mentre ci sono anche altre soluzioni.

    
risposta data 30.01.2014 - 09:24
fonte

Leggi altre domande sui tag