Domanda

E 'stato poche settimane sto cercando di trovare una spiegazione più dettagliata, con esempi come gestire il mio cambiamento database su patch di software.

Situazione:

  • schiero rilascio applicazione WPF per utente. App utilizza file di dati MSSQL per l'archiviazione dei dati di app (Distribuzione con Client Profile e SqlServer Compact 3.5 prerequisiti)
  • In ulteriori modifiche allo schema di database di sviluppo aggiungo alcuni extra Dati troppo
  • Sto cercando di eseguire un patch / minore / maggiore aggiornamento con Visual Studio 2008 e la pubblicazione msi

Se si desidera aggiornare gli utenti app e file di database, ma non toccare i dati che sono stati memorizzati nel database. Sembra facile, ma non riesco a trovare sul web come ottenere questo fatto con la pubblicazione di Visual Studio

Quello che ho raccolto finora sono 2 possibilità:

  • Crea script di aggiornamento SQL per ogni rilasciare e provare aggiornamento del database su 1 ° lancio del programma, dopo l'applicazione di patch.
  • Crea progetto di installazione del database e provare allo script da lì (nessuna idea di come fare questo).

Sarei contento di sentire quello che alcuni di voi stanno usando o potrebbe usare questo caso. Alcuni link per esempi / spiegazione dettagliata di come todo sarebbe impressionante. Io non sono molto bravo a questa roba deployment / database ... ancora ...:)

Grazie in anticipo.

È stato utile?

Soluzione

In questo articolo su " Rails stile migrazioni di database in .Net " potrebbe essere utile. Dal momento che l'ascesa di Rails v'è stato un sacco di lavoro sulle migliori pratiche per le migrazioni di database, che possono essere sfruttate in altre lingue e piattaforme.

Altri suggerimenti

Nel mio progetto attuale si usa una tecnica chiamata Continuous Integration Database.

Noi raccogliamo tutti gli script SQL di modifica (che può essere la creazione / modifica di tabelle, stored procedure, ma anche la migrazione dei dati, ecc ...), in corrente alternata # progetto e distribuirli al tempo stesso come il resto del software.

Con questa tecnica siamo in grado di garantire che tutti i database per sviluppatori sono up-to-date e, come si è integrato nel sistema di studio di accumulo visivo.

Noi usiamo questo script MSBuild per locali costruisce e per la distribuzione. Si controlla un numero di versione nel datebase, ed esegue gli script con un numero più alto.

io non sono così appassionato di MSBuild, ma ottiene il lavoro fatto.

Martin Fowler ha un articolo su banca dati evolutivo disegno che ha alcuni retroscena su questo.

Se stai usando studio dell'amministrazione di SQL Server per apportare modifiche, è possibile utilizzare la "Modifica Script Generate" per lasciare che lo script le modifiche per te.

Se si aggiunge classe Installer per la DLL o EXE è Install metodo verrà richiamato durante la configurazione (controllare il nostro MSDN per i dettagli, VS può fare una mini proj setup per voi e poi si può solo copiare lo scheletro e gli attributi). Quindi è possibile eseguire i comandi SQL contro i file esistenti CE e di backup CE e anche fare un ripristino in caso di problemi (classe Installer dispone di metodi da seguire pieni passi transnazionali a livello di tutta la messa a punto - il pezzo di cosa mente: -)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top